首页 理论教育 μClinux程序设计要点解析

μClinux程序设计要点解析

时间:2023-11-23 理论教育 版权反馈
【摘要】:软件开发工具GCC可以免费获得,它无疑是在μClinux 开发应用程序的最佳工具。μClinux 系统的软件开发需要在标准Linux 平台上用交叉编译工具来完成。④μClinux 系统目前支持flat 和elf 两种可执行文件格式。μClinux 的应用程序库μClinux 小型化的一个做法是重写了应用程序库,相对于越来越大且越来越全的glibc库,μClinux 对libc 作了精简。μClinux 的应用程序库μClibc 提供大多数的类UNIX 的C 语言程序调用。μClinux 的裁减不同的嵌入式系统之间的根文件系统内容差异很大。

μClinux程序设计要点解析

(1)软件开发工具

GCC(GNU C Compiler)可以免费获得,它无疑是在μClinux 开发应用程序的最佳工具。

μClinux 系统的软件开发需要在标准Linux 平台上用交叉编译工具来完成。 除了前面所提到的一些涉及内存和系统调用的程序之外,在x86 版本的gcc 编译器下编译通过的软件通常不需要做大的改动就可以用交叉编译工具编译到μClinux 上运行。

(2)可执行文件格式

先解释以下几种可执行文件格式:

①coff(common object file format)为一种通用的对象文件格式,已被elf 格式所取代。

②elf(excutive linked file)为Linux 系统所采用的通用文件格式,支持动态链接和重定位

③flat 即扁平格式。 elf 格式有很大的文件头,flat 格式对文件头和一些段信息作了简化,可执行程序小。

④μClinux 系统目前支持flat 和elf 两种可执行文件格式。(www.xing528.com)

(3)μClinux 的应用程序库

μClinux 小型化的一个做法是重写了应用程序库,相对于越来越大且越来越全的glibc库,μClinux 对libc 作了精简。 最新版本的程序库可以从这个网址获得:

http:∥uclibc.org/download/uClibc-0.9.10.tar.gz

μClinux 对用户程序采用静态链接的形式,这种做法会使应用程序变大,由于内存管理没有MMU 的特性,只能采取这种方式,同时这种做法也更接近于通常嵌入式系统的做法。μClinux 的应用程序库μClibc 提供大多数的类UNIX 的C 语言程序调用。 如果应用程序需要用到μClibc 中没有提供的函数,这些函数可以加到μClibc 中作为一个独立的库或者加到应用程序上进行链接。

(4)μClinux 的裁减

不同的嵌入式系统之间的根文件系统内容差异很大。 μClinux 的发布包括一个根文件系统,实现了一个小型的类UNIX 服务器,在串口上有控制台,telnet daemon、web server、NFS 客户端支持和一些可选的常用工具。 但是,有的系统设计可能不需要控制台,例如,如果设计一个可以播放MP3 的随身CD 机,内核只需要支持CD 驱动、并行I/O 和音频DAC。 而在用户空间可能只包括一个接口程序来驱动按钮、LED、来控制CD 播放,并调用MP3 的解码程序,这就需要按照不同的应用需要对μClinux 进行裁减。

Linux 内核采用模块化的设计,即很多功能块可以独立地安装或卸载,开发人员在设计内核时将这些内核模块作为可选的选项,可以在编译系统内核时指定。 因此,一种较通用的做法是对Linux 内核重新编译,在编译时仔细地选择嵌入式设备所需要的功能支持模块,同时删除不需要的功能。 通过对内核的重新配置,可以使系统运行所需要的内核显著减小,从而缩减资源使用量,实现了μClinux 的“量身定制”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈