U-Boot编程
介绍
为了使U-Boot适应自定义的硬件,通常需要对U-Boot进行一些细微的更改。例如,支持特定于电路板的功能或添加一些例程,这些例程向终端用户发出信号,表明设备确实已经启动,并且在。启动的过程发生时发生了一些事情。
这篇简短的教程主要介绍用于ARM的U-Boot,但是在其它架构上上使用的技术是相似的,而且通常是完全相同的。假设读者熟悉命令级的U-Boot用法以及编译和部署。
建议首先读取项目根目录中的自述文件。它包括以下主题:
•源文件树结构
•配置的含义定义
•U-Boot构建说明。
•如何将U-Boot移植到新平台
•对Hush shell简介
•如何构建Linux映像(mkimage)
•常见环境变量列表
•“Hello world”示例及其使用方法
boards.cfg包含支持的板的列表。也值得一看。
本教程是针对U-Boot版本v2013.07编写的,但是这些原则适用于各种版本。
明智的黑客
当遇到大量的软件资源时,最直接的本能是寻找第一个地方注入一个小的黑客,并对必要的功能进行硬编码。这不仅会在将来导致令人生畏的重新破解和重新编译,而且也没有必要:U-Boot实际上是为了方便添加自定义功能而设计的。
可以将可能的修改分为三类:
•修改U-Boot的初始化过程,以便尽早设置定制板的特定硬件
•通过添加或修改低级驱动程序,增加对特定硬件的支持
•扩展命令界面以支持所需功能,可能作为新硬件的前端
在电路板的初始化程序中添加几行黑客代码来执行特定的操作可能很诱人。这很有可能有效,但正如刚刚提到的