随着计算机技术、微处理器技术和集成电路技术的发展,嵌入式系统已成为二十一世纪计算机应用领域中一个重要组成部分。Linux操作系统因其源代码开放、内核稳定高效、支持广泛的处理器结构和硬件平台、可定制性好等特点,特别是Linux2.6内核的快速发展,嵌入式Linux已经在嵌入式领域的应用越来越广泛。以32位IP核为基础的ARM嵌入式处理器,具有高性能、低功耗等特点已得到最广泛的应用,并且占据着32位嵌入式微处理器的绝大多数市场份额。嵌入式Linux与ARM处理器的结合,更是嵌入式技术领域一种主流的解决方案。在ARM处理器上构建嵌入式Linux系统具有巨大的实用价值。
嵌入式系统是由硬件和软件相结合组成的具有特定功能、用于特定场合的独立系统。嵌入式系统在体积、功耗和成本等方面的特殊要求,决定了在设计和开发嵌入式系统时必须根据硬件和应用需求量身定制其软件系统。一个典型的嵌入式系统软件部分通常由Bootloader、嵌入式操作系统内核和根文件系统三个基本部分构成。嵌入式系统开发过程中必须结合硬件和应用需求对三个基本部分进行合理的设计和配置,以达到在特定硬件环境下构建满足应用要求的软件系统的目的。
本论文研究和探讨了基于ARM处理器的嵌入式Linux系统的关键技术。论文首先研究了嵌入式Linux系统交叉编译环境的构建,使用Crosstool脚本工具实现一次性编译生成交叉编译工具链;然后详细分析了系统引导程序Bootloader的实现原理,研究了课题所使用的U-Boot的结构和实现,扩展了嵌入式Linux的引导方式;接下来详细讨论了Linux2.6内核源代码树的结构,确定需要修改和裁剪的模块与文件。针对目前较新的2.6版Linux内核源码进行配置、编译和移植;最后研究了嵌入式Linux系统根文件系统的创建,制作了一个基于Cramfs的文件系统作为嵌入式系统的根文件系统,并使用BusyBox和μClibc缩小了根文件系统的大小。通过使用本论文讨论的方法和技巧能够方便快捷的构建一个基于ARM的嵌入式Linux系统。