内容

  • bootloader概念与启动过程介绍
  • U-Boot概念
    • U-Boot常用命令
    • U-Boot环境变量
    • U-Boot目录分析
  • U-Boot编译,使用

 

Bootloader:在操作系统内核或用户应用程序运行之前运行的一小段代码。对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境。在嵌入式系统中,整个系统的启动加载任务通常由Bootloader来完成。它做了两件事:

  1. 硬件初始化,为系统运行准备环境
  2. 引导加载系统

Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。所以它并不通用与所有嵌入式系统,在板子上运行前需要我们进行移植操作。不同种类Bootloader特点不同,目前最广泛应用的就是U-Boot了。

 

 

U-Boot

U-Boot是目前Bootloader中使用率最高的一种,特点是开源免费,应用广泛。U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。

U-Boot有两种操作模式

  • 自启动模式:在这种模式下,Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。
  • 交互模式:在这种模式下,目标机上的Bootloader将通过串口或网络等通信手段从开发主机(Host)上下载内核映像和根文件系统映像等到RAM中。可以被 Bootloader写到目标机上的固态存储媒质中,或者直接进行系统的引导。也可以通过串口接收用户的命令。 

 自启动模式不用用户介入会自动引导加载内核;交互模式下,可以通过命令对U-Boot进行变量参数配置。

 

U-Boot常用命令(交互模式)

  • help 查看uboot支持的搜用命令
  • pri 或者 prientenv  查看uboot的环境变量
  • setenv 设置环境变量
  • saveenv 保存环境变量
  • ping 检测网络是否联通
  • bootm 用于运行内核
  • tftp 通过网络下载程序
  • loadb 通过串口下载二进制文件(裸机开发常用)
  • go 执行逻辑程序(逻辑开发常用)

 

U-Boot环境变量

通过pri命令串口输出打印

 

U-Boot的使用(移植好了的)

一般从官方或者厂家拿到UBoot后,先对其修改配置,然后将移植好了的UBoot制作到EMMC或者SD卡中,然后产品上电的时候就能直接加载了

  1. 移植好的Uboot源码 u-boot-2013.01
  2. 编译生成二进制文件  u-boot.bin
  3. 制作SD卡,将二进制UBoot写入 
  4. 板子上电,启动SD卡,有串口显示,成功!