原文出自:http://adam.kaist.ac.kr/~hschoe/Get...inuxARM2_6.html 作者:Hyok S.Choi < hyok.choi@samsung.com > 翻译:renbagshoes < renbagshes12@yahoo.com.cn > 转载请注明www.linuxsir.org ,谢谢!
一、使用uClinux/ARM 2.6的原因? 为什么你要使用uClinux?有很多的理由使uClinux做为你的嵌入式操作系统。其中大部分认为uClinux有以下好处:
轻便
你可以编译linux2.6的内核得到一个300k以下的内核镜像,它包括终端和一些基本的设备驱动以及只读文件系统。并且flat格式的二进制zImage和应用程序要比linux传统使用的ELF二进制小30%--50%,由于使用了较少的标准的C和C++库。 XIP(execution in place)
你能通过XIP来在一个较小的RAM时执行你的内核镜像,甚至是应用程序。它能帮助你快速的启动,尽管flash的存取时间或是rom启动镜像足够快以及有足够的缓存大小。(如果我们想找到它们最优化的平衡点,可以交换两者之间这些变量。)
便宜
MMU(内存管理单元)核心大小大约占典型的ARM SoC(System-on-Chip单片机)wafer(晶体)的30%。在典型的网络和嵌入式系统里有一半以上的应用程序不需要MMU。甚至如果只有一个CPU的许多RTOS(实时操作系统)在默认情况下也不使用MMU。 完全的Linux应用程序接口
除少数情况外,你可以在uClinux平台上完全使用Linux应用程序接口。你能在uClibc里使用多线程以及使用标准的系统调用。在用户盘里的uClinux发布包里有大量的应用程序被移植到了uClinux系统上。
Easiar to adapt
在uClinux性能里有一个有趣的特性,是应用程序可以访问整个系统,包括设备里的寄存器,with a bit of wrapper ,我们能制作固件代码做为无格式的应用程序运行在 uClinux上!当然,你能加一些设备驱动和系统调用来调用以及使用许多打开的Ips在混和的旧的固件代码里。如果你计划移动你的固件代码到 linux,但你没有熟悉的linux系统程序,uClinux是一个很好的出发点
完全的linux2.6内核的特性
尽管uClinux很小,但它支持linux2.6内核约定的全部的特性,包括内核优先级特性以及许多的文件系统,设备驱动。为linux约定设备驱动端口是容易实现的。几乎所有的代码不需要改变就可以编译,除了从虚拟地址到物理的内存镜像外。 注:上面的部分由于涉及的概念太多,翻译的不大好,请大家指正,谢谢。 |