三、uboot的烧写及使用

1、uboot概述

1.1 开发板启动过程

ubi emmc分区_ubi emmc分区

 

1.2 Bootloader

Bootloader

在操作系统运行之前运行的一小段代码,用于将软硬件环境初始化到一个合适的状态,为操作系统的加载和运行做准备(其本身不是操作系统)

Bootloader基本功能

初始化软硬件环境

引导加载linux内核

给linux内核传参

执行用户命令

注:bootloader是启动引导程序的统称,嵌入式linux常用的bootloader是uboot

1.3 常见的Bootloader

ubi emmc分区_环境变量_02

 

2、SD卡启动盘制作

2.1 SD卡存储结构

SD卡的存储以扇区为单位,每个扇区的大小为512Byte, 其中零扇区存储分区表(即分区信息),后续的扇区可自行分区和格式化;

若选择SD卡启动,处理器上电后从第一个扇区开始将其中的内容搬移到内存,所以我们把uboot放到从第一个扇区开始之后的空间, 之后的空间根据个人需求可进行分区和格式化

ubi emmc分区_ubuntu_03

 

linux@linux:~$ ll zero.bin -rw-r--r-- 1 root root 512 Apr 17 03:02 zero.bin

linux@linux:~$ du -mh clear.bin 1.0M clear.bin

3、uboot的使用

3.1 uboot模式

自启动模式

uboot启动后若没有用户介入,倒计时结束后会自动执行自启动 环境变量(bootcmd)中设置的命令(一般作加载和启动内核)

交互模式

倒计时结束之前按下任意按键uboot会进入交互模式,交互模式下用户可输入uboot命令

3.2 uboot帮助命令

help

查看uboot支持的所有命令

help 命令

查看当前命令的使用方法

eg:help loadb

3.3 uboot环境变量命令

printenv

打印uboot中所 有的环境变量

setenv

设置指定的环境变量(保存在RAM中)

setenv 环境变量 环境变量的值

eg:setenv ipaddr 192.168.1.100

saveenv

保存所有环境变量到EMMC中

ipaddr

uboot的IP地址

serverip

服务器的IP地址(即ubuntu的IP)

bootdelay

进入自启动模式之前倒计时的秒数

3.4 uboot网络传输命令

loadb

通过Kermit协议下载文件到指定的内存地址

loadb 地址

tftp

通过tftp协议下载文件到指定的内存地址

tftp 地址 文件名

注:使用tftp之前要配置好网络及tftp服务器

sudo chmod 777 interface.bin 修改权限

3.5 uboot存储器访问命令

mmc read

将EMMC中指定扇区中的内容读取到内存中指定的地址

mmc read <addr> <blk#> <cnt>

addr: 内存地址

blk#: EMMC中的扇区编号

cnt: 读取的扇区的个数

mmc write

将内存中指定地址中的内容写入到EMMC中指定的扇区

mmc write <addr> <blk#> <cnt>

3.6 uboot自启动环境变量

bootcmd

自启动的环境变量 该环境变量可以设置成一到多个uboot命令的集合(若有多个使用\;分割) 自启动模式下uboot就会按照bootcmd中命令的顺序逐条执行

eg:

setenv bootcmd tftp 40008000 interface.bin\;go 40008000

saveenv

day3 作业

1.简述uboot的作用? 2.简述uboot中bootcmd环境变量的功能?

1、 ① uboot主要作用是用来启动操作系统内核。 ② uboot还要负责部署整个计算机系统。 ③ uboot中还有操作Flash等板子上硬件的驱动。 ④ uboot还得提供一个命令行界面供人来操作。 2、 bootcmd是自动启动时默认执行的一些命令,因此可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。