uClinux 上的应用程序设计
Luojia, Tsinghua Motorola MCU & DSP Center
uClinux 以其优异的性能、免费开放的代码等优点,博得众多嵌入式开发者
的青睐。和过去基于简单 RTOS 甚至没有使用任何操作系统的嵌入式程序设计
相比,基于 Linux 这样的成熟的、高效的、健壮的、可靠的、模块化的、易于配
置的操作系统来开发自己的应用程序,无疑能进一步提高效率,并具有很好的可
移植性。
在前面的章节中,我们已介绍了硬件平台、内核编译、开发环境等内容。如
果仅仅有 Hardware 和 OS,这个系统所能做的事情还非常有限。对于一个实际
的嵌入式产品而言,所提供的功能和应用是关系到产品成败的重要因素。
图 1 基于 uClinux 的嵌入式系统
我们知道,在主流的 Linux 平台上,已经有了非常丰富的、开源的应用程序,
使得开发者很容易获得前人的成果作为参考,编写更适合自己的程序。
然而,对于很多已经在标准 Linux 环境中工作得很好的程序,并不能直接在
uCLinux 环境上运行。一方面,是由于嵌入式的 uCLinux 所使用的处理器和普通
PC 不同,指令集、CPU 结构上的差异导致 uClinux 上运行的程序需要专门为该
类型处理器交叉编译产生;另一方面,uCLinux 是为了没有内存管理单元
(MMU)的处理器、控制器设计,并做了较大幅度的精简,所以,在标准 Linux
上可以使用的一些函数和系统调用在 uCLinux 上有可能就行不通了。
因此,我们有必要了解,在 uCLinux 上的应用程序设计和标准 Linux 程序设
计存在哪些不同之处?应该如何修改,才能让标准 Linux 程序可以移植到
uCLinux 上并正常工作呢?如何才能高效地开发 uclinux 上的应用程序呢?本文
旨在对这些问题进行初步的探讨。
1 uClinux 和 Linux 的异同
uClinux 是针对控制领域的嵌入式 linux 操作系统,它从 Linux 2.0/2.4 内核派
以 MCF5307 微处理器为核心的硬件平台
uClinux 软件平台/操作系统
应用软件
嵌入式系统