uCLinux 开发介绍 严永红 Linux 是当前一种非常受欢迎的操作系统,它与UNIX 系统兼容,并开放源代码。它包含所有现代操作系统所具有的一切特性,包括多任务,虚拟内存,代码共享,按需载入,内存管理,以及TCP/IP 网络。并且,它遵循POSIX 标准,只要是遵循POSIX API 的应用程序很容易被移植。目前,随着嵌入式系统的蓬勃发展。Linux 也已对嵌入式系统的开发产生具大影响。大多数流行的CPU 都被移植上去,ARM, PowerPC , MIPS, 68K, SPARC, Alpha, SH 等等. 这些CPU 都含有一种叫做内存管理单元(MMU)的硬件,来支持标准Linux 所需要的虚拟内存。但在嵌入式世界里,还有很多CPU 是没有MMU 的,象 ARM7、 68328 等等。uClinux正是为了解决这种没有MMU 的CPU 而产生的。在uCLinux 这个英文单词中,u 表示Micro,小的意思,C 表示Control,控制的意思,连起来就是Micro-Control-Linux, ―运行在微控制器上的Linux.‖ 针对这种没有MMU 的 CPU 架构,uCLinux 采用了一种平板式(Flat)的内存模型来去除对MMU 的依赖, 并且改变了用户程序的加载方式,开发了运用于uCLinux 的 C 函数库--uCLibc. 由于这些变化,一般的Linux 开发工具(例如GDB)在开发uCLinux 时会碰到一些困难,包括内核的移植,驱动程序及应用程序的调试。针对这样状况。Hitool System 公司开发了Hitool for uClinux 开发套件,来帮助用户开发基于uClinux 的系统。Hitool for uClinux 与其它的 Linux 开发工具相比,有几个优点: A. 整个开发过程只在Windows 环境下完成,包括内核的配臵、编译,应用程序的编译,文件系统的生成,内核的调试,用户程序的调试。 B. 可以采用多种调试方式,既可以采用JTAG 方式来调试,也可通过网口用Hitool自己的监控程序(MDB)来调试。通过JTAG 方式, 调试可以调试内核和驱动程序, 也同时可以调应用程序. 一般的开发工具做不到这一点。 对于那些只要调试应用程序的客户, 就可以采用MDB 的方式.采用这种方式,你不但不需要仿真器,而且在调试一个应用时,不会影响别的应用的运行。 C. 提供了一个内核的追踪工具(Trace)来帮助用户分析整个系统。 在本章中,我们将结合这个工具来对uClinux 做一些介绍。(在现在Hitool for uClinux套件中,提供对两种ARM-7 评估板的支持,一个是Micetek 的 EV4.0,采用Atmel40800 CPU).另一种是Micetek 的 EV4510b,采用Samsung 的 4510b...