引 言
Bootloader(引导装载器)是用于初始化目标板硬件,
给嵌入式操作系统提供板上硬件资源信息,并进一步装
载、引导嵌入式操作系统运行的固件。在嵌入式系统开
发过程中,很多情况都会涉及底层Bootloader的移植问
题, 即使在有些已有Bootloader的参考开发板上也存在
这种可能。概括来说, 如下情况会考虑进行Bootloader
的移植工作。
① 在自主设计的目标板上,用于引导嵌入式操作系
统及其应用。
② 在厂家未提供Bootloader源码的参考板上,遇有
如下情形之一:
a.在实际应用中需要添加或修改一些功能;
b.为了给自行设计主板移植BOotlOade r提供参考,先在参考板上进行移植以积累经验。
另外,从嵌入式系统实际开发角度讲, 嵌入式操作系统的引导、配置甚至应用程序的运行状况都和bootloader有一定的关联,可以说,掌握Bootloader移植是顺利进行嵌入式系统开发的重要利器。
与常见的嵌入式操作系统板级支持包B S P相比,Boot loader与底层硬件更为相关, 即每个不同配置的目标板基本都有不同的Bootloader。因为Bootloader往往更依据量体裁衣、定身制作的原则, 以满足要求的最小化代码存放在启动ROM 或Flash中。
虽然,自行编写Bootloader未尝不可,但从可利用的资源和实际项目开发考虑,采用移植已有的Bootloader源码来解决这一问题更符合大多数项目的开发要求。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
U-Boot简介
U—Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目,从FADSROM、8xxROM 、PPCBOOT逐步发展演化而来,其源码目录、编译形式与Linux内核很相似。事实上,不少U—Boot源码就是相应Linux内核源程序的简化, 尤其是一些设备的驱动程序, 从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导, 当前,它还支持NetBSD。VxWorks、QNX、RTEMS、ARTOS、LynxOS嵌入式操作系统。当前,u-BOOt项目在他的领军下,众多有志于开放源码Boot loader移植工作的嵌入式开发人员, 正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入, 以支持更多嵌入式操作系统的装载与引导。
U-Boot移植过程
① 获得发布的最新版本U—Boot源码,与Linux内核源码类似,也是bzip2的压缩格式。可从U.Boot的官方网站http://sourceforge.net/projects/U-Boot上获得。
② 阅读相关文档,主要是U.Boot源码根目录下的README文档和U—Boot官方网站的DULG(The DENX U—
Boot and Linux Guide)文档(http:llwww.denx.de/twiki/bin/view/DULG/Manua1)。尤其是DULG文档,对如何安装建立交叉开发环境和解决U-Boot移植中常见问题,都一一给出了详尽说明。
③ 订阅U—Boot用户邮件列表(http://lists.sourceforge.net/lists/listinfo/u—boot—users)。当在移植U-Boot过程中遇有问题,在参考相关文档和搜索u.Boot.U ser邮件档案库(httP://SOurceforge.net/mailarchive/forum.php? forum — id="l" 2898)仍不能解决时,第一时间提交所遇到的问题, 众多U-Boot开发人员会迅速排查问题,而且W.D本人很有可能会直接参与指导。
④ 在建立的开发环境下进行移植工作。绝大多数的开发环境是交叉开发环境。在这方面,DENX和MontaVi sta均提供了完整的开发工具集。
⑤ 在目标板与开发主机间接入硬件调试器。这是进行U-Boot移植应当具备且非常关键的调试工具。因为在整个U—Boot的移植工作中,尤其是初始阶段,硬件调试器是我们了解目标板真实运行状态的唯一途径。在这方面, W .D 本人和众多嵌入式开发人员倾向于使用BDI2000。一方面,其价格不如ICE调试器昂贵,同时其可靠性高,功能强大, 完全能胜任移植和调试U—Boot。另外, 网上也有不少关于BDI2000调试方面的参考文档。
⑥ 如果在参考开发板上移植U—Boot,可能需要移除目标板上已有的Boot loader。可以根据板上Boot loader的说明文档,先着手解决在移除当前Boot loader的情况下,如何进行恢复,以便今后在需要场合能重新装入原先的Boot loader。
5 U-Boot移植方法
当前,对于U.Boot的移植方法,大致分为两种。一种是先用BDI2000创建目标板初始运行环境,将U-Boot镜像.
另外一种方法是用BDI2000先将U—Boot镜像文件烧写到Flash中去,然后利用GDB和BDI2000进行调试。
文章评论(0条评论)
登录后参与讨论