用SD卡定制嵌入式Linux系统的最小系统
2017-11-09,,
,,
(苏州大学 电子信息学院,苏州 215006)
用SD卡定制嵌入式Linux系统的最小系统
茅胜荣,肖家文,乔东海
(苏州大学 电子信息学院,苏州 215006)
以经典ARM应用处理器S3C6410为例,通过移植u-boot-2013.04-rc2和linux-3.18.57,制作EXT4格式的根文件系统,来定制基于SD卡的嵌入式Linux最小系统,并通过Appweb服务器的移植进一步完善了嵌入式系统的软件功能。实验结果表明,SD卡即插即用的特性大大方便了系统的开发、维护与升级。
S3C6410;嵌入式Linux;U-Boot;EXT4文件系统;Appweb
引 言
在一个完整的嵌入式Linux系统中,Flash扮演着数据与代码存储器的角色,其中NAND类型的Flash具有容量大、成本低的优点,所以很多处理器内部集成了专门的控制器来驱动NAND Flash。但是其工艺决定了它内部容易产生坏块,读写Flash同时需要做额外的ECC校验,这增加了驱动移植的难度。而SD卡利用特殊的封装工艺将NAND Flash颗粒与控制器集成在一起,对外提供高速的SDIO接口进行读写控制,底层驱动程序彻底摆脱了复杂的坏块管理工作。本文在SD卡上搭建U-Boot来引导Linux内核,然后挂载位于SD卡分区上的根文件系统,在此基础上移植嵌入式web服务器Appweb。

图1 配置单板信息
然后将内核从存储介质读取到内存中运行。本文以u-boot-2013.04-rc2为例,分析其移植的一般规律。
1.1 基本配置
U-Boot支持绝大多数CPU体系结构,首先在boards.cfg文件中配置单板计算机的基本信息。如图1所示,单板名字为smdk6410,CPU架构为arm,体系结构为arm1176,制造商为samsung,SoC系列为s3c64xx,U-Boot编译系统通过读取这些信息来筛选需要编译的体系结构相关的源代码。考虑到S3C6410和S3C6400属于一个系列,功能基本相同,因此可以选择U-Boot中的smdk6400作为模板,复制一份相同的源码并重命名,这样可以迅速搭建起一个框架。……
