内容
- bootloader概念与启动过程介绍
- U-Boot概念
- U-Boot常用命令
- U-Boot环境变量
- U-Boot目录分析
- U-Boot编译,使用
Bootloader:在操作系统内核或用户应用程序运行之前运行的一小段代码。对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境。在嵌入式系统中,整个系统的启动加载任务通常由Bootloader来完成。它做了两件事:
- 硬件初始化,为系统运行准备环境
- 引导加载系统
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卡中,然后产品上电的时候就能直接加载了
- 移植好的Uboot源码 u-boot-2013.01
- 编译生成二进制文件 u-boot.bin
- 制作SD卡,将二进制UBoot写入
- 板子上电,启动SD卡,有串口显示,成功!