U-Boot学习笔记总结摘要

一、         BootLoader简介(ZZ)

对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程,这个引导程序就叫作Bootloader

 

Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。

 

对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的BootloaderBootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。

 

反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPCARMMIPSX86等体系结构,支持的板子有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。

 

 

二、         U-Boot工程简介(ZZ)

最早,DENX软件工程中心的Wolfgang Denk基于8xxrom的源码创建了PPCBOOT(PowerPC Boot)工程,并且不断添加处理器的支持。后来,Sysgo Gmbhppcboot移植到ARM平台上,创建了ARMboot工程。然后以ppcboot工程和armboot工程为基础,创建了U-Boot工程。

 

现在U-Boot已经能够支持PowerPCARMX86MIPS体系结构的上百种开发板,已经成为功能最多、灵活性最强并且开发最积极的开放源码Bootloader。目前仍然由DENXWolfgang Denk维护。

 

U-Boot的源码包可以从sourceforge网站下载,还可以订阅该网站活跃的U-Boot Users邮件论坛,这个邮件论坛对于U-Boot的开发和使用都很有帮助。

 

U-Boot软件包下载网站:http://sourceforge.net/project/u-boot

U-Boot邮件列表网站:http://lists.sourceforge.net/lists/listinfo/u-boot-users/

DENX相关的网站:http://www.denx.de/re/DPLG.html

 

 

三、         U-Boot源码结构(ZZ)

从网站上下载得到U-Boot源码包,解压就可以得到全部U-Boot源程序。在顶层目录下有18个子目录,分别存放和管理不同的源程序。

 

这些目录中所要存放的文件有其规则,可以分为3类:

1类目录与处理器体系结构或者开发板硬件直接相关;

2类目录是一些通用的函数或者驱动程序;

3类目录是U-Boot的应用程序、工具或者文档。

U-Boot的源代码包含对几十种处理器、数百种开发板的支持。可是对于特定的开发板,配置编译过程只需要其中部分程序。

 

 

四、         U-Boot的移植(ZZ)

U-Boot能够支持多种体系结构的处理器,支持的开发板也越来越多。因为Bootloader是完全依赖硬件平台的,所以在新电路板上需要移植U-Boot程序。

 

开始移植U-Boot之前,先要熟悉硬件电路板和处理器。确认U-Boot是否已经支持新开发板的处理器和I/O设备。假如U-Boot已经支持一块非常相似的电路板,那么移植的过程将非常简单。

 

移植U-Boot工作就是添加开发板硬件相关的文件、配置选项,然后配置编译。

 

开始移植之前,需要先分析一下U-Boot已经支持的开发板,比较出硬件配置最接近的开发板。选择的原则是,首先处理器相同,其次处理器体系结构相同,然后是以太网接口等外围接口。还要验证一下这个参考开发板的U-Boot,至少能够配置编译通过。

 

移植U-Boot的基本步骤如下:

1)在顶层Makefile中为开发板添加新的配置选项。

2)创建一个新目录存放开发板相关的代码,并且添加文件。

3)为开发板添加新的配置文件。如果是为一颗新的CPU移植,还要创建一个新的目录存放CPU相关的代码。

4)配置开发板(make XXXX_config)

5)编译U-Boot(make)。执行make命令,编译成功可以得到U-Boot映像。U-Boot编译成功可以得到下表中的文件:

U-Boot编译生成的映像文件

   

   

System.map

U-Boot映像的符号表

u-boot.bin

U-Boot映像原始的二进制格式

u-boot

U-Boot映像的ELF格式

u-boot.srec

U-Boot映像的S-Record格式

U-Boot3种映像格式都可以烧写到Flash中,但需要看加载器能否识别这些格式。一般u-boot.bin最为常用,直接按照二进制格式下载,并且按照绝对地址烧写到

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值