U-Boot SD卡启动的移植分析与功能扩展
其中cmd为命令字符串,flag标志该命令是否被重复执行,返回值表明了命令执行成功与否的状态。因此,以需要执行的安装命令字符串为参数调用run_command函数便可自动执行命令,实现系统的脱机安装。此外,为了使系统安装更加灵活方便,本实现中加入了一个配置文件用于对安装中的相关参数进行设置,配置文件的路径及名称固定为/images/chd_cfg.ini,其内容如下:

其中所有以“#”开头的行为注释行,OS变量说明了需要安装的操作系统类型,以下的OS-BootLoader、OS-Kernel,OS-RootFs变量分别注明了需要安装到Flash中的Bootloader、内核、文件系统在SD 卡中的路径。通过首先解析该配置文件,然后从SD 卡中加载安装相关镜像的方式可以方便地更换系统,只需修改文件中的配置参数即可,其实现流程如图3所示。

4 实验结果
将修改好的U-Boot进行编译后烧写到SD卡中的相应位置,设置S3C6410为SD卡启动模式,上电后的串口输出信息如图4所示。

图中(1)是读取配置文件chd_cfg.ini 的输出信息,可以看出该文件一共有314 个字符,(2)是对文件解析后的参数的输出显示,(3)和(4)分别显示的是U-Boot和内核的加载以及烧写过程,成功烧写后进入(5),在此处程序进入死循环并提示重启系统。图5所示为随后使用NAND模式启动系统时的输出。

图中(1)为烧写到Nand Flash中的U-Boot启动之后的终端输出,(2)为加载引导内核时的打印信息。由此结果可以看出已成功进行了系统的脱机烧写。
5 结语
本文修改移植了U-Boot-2011.06使其支持S3C6410处理器SD卡启动模式,对其进行了原理分析,同时对U-Boot进行了扩展,增加了只使用SD 卡便可安装整个系统的功能,并进行了实验验证。结果表明该方法具有可行性,可简化嵌入式系统的安装工作,增强了U-Boot的功能,对U-Boot在其他平台上的移植和改进具有一定的参考价值。
评论