系统移植篇二--uboot烧写与使用
一、交叉环境的搭建
交叉环境搭建教程免费下载:
https://download.csdn.net/download/qq_51447215/85302721
1、tftp简介
tftp
(Trivial File Transfer Protocol)即简单文件传输协议
是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件
传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69
uboot中提供tftp,因此只需要在Ubuntu中下载就行了
2、nfs简介
nfs
(Network File System)即网络文件系统
,其基于UDP/IP
使用nfs能够在不同计算机之间通过网络进行文件共享
,能使使用
者访问网络上其它计算机中的文件就像在访问自己的计算机一样。
二、uboot
Bootloader
在操作系统运行之前运行的一小段代码,用于将软硬件环境初始化到
一个合适的状态,为操作系统的加载和运行做准备(其本身不是操作系统)
Bootloader基本功能
- 初始化软硬件环境
- 引导加载linux内核
- 给linux内核传参
- 执行用户命令
注:bootloader是启动引导程序的统称,嵌入式linux常用的bootloader是uboot
三、SD卡启动盘制作
SD卡存储结构
SD卡的存储以
扇区
为单位,每个扇区的大小为512Byte
, 其中零扇区存储分区表
(即分区信息),后续的扇区可自行分区和格式化;
若选择SD卡启动
,处理器上电后从第一个扇区开始将其中的内容搬移到内存
,所以我们把uboot放到从第一个扇区开始之后的空间, 之后的空间根据个人需求可进行分区和格式化
ARM开发板SD卡启动盘制作教程下载:https://download.csdn.net/download/qq_51447215/85303047
四、uboot的使用
当我们将uboot程序烧入SD卡,再将SD卡插到ARM开发板上,选择SD卡启动,开发板上电,芯片将uboot程序从SD卡外存搬移到内存执行,下面讲解uboot的使用。
1、uboot模式
- 自启动模式
uboot启动后若没有用户介入,倒计时结束后会自动执行自启动
环境变量(bootcmd)
中设置的命令(一般作加载和启动内核) - 交互模式
倒计时结束之前按下任意按键uboot会进入交互模式,交互模式下
用户可输入uboot命令
2、uboot帮助命令
- help
查看uboot支持的所有命令
- help 命令
查看具体命令
的使用方法
3、uboot环境变量命令
- printenv
打印uboot中所有的环境变量 - setenv
设置指定的环境变量(保存在RAM内存中)
setenv 环境变量 环境变量的值
- saveenv
保存
所有环境变量到EMMC中
4、uboot常用环境变量
- ipaddr
uboot的IP地址 - serverip
服务器的IP地址(即ubuntu的IP) - bootdelay
进入自启动模式之前倒计时的秒数 - gatewayip
网关IP地址 - netmask
掩码
5、uboot网络传输命令
- loadb
通过Kermit协议下载文件到指定的内存地址
loadb 地址
- tftp
通过tftp协议下载文件到指定的内存地址
tftp 地址 文件名
注:使用tftp之前要配置好网络及tftp服务器
6、uboot存储器访问命令
-
mmc read
将EMMC中指定扇区中的内容读取到内存中指定的地址
mmc read <addr> <blk#> <cnt>
addr: 内存地址 blk#: EMMC中的扇区编号 cnt: 读取的扇区的个数
-
mmc write
将内存中指定地址中的内容写入到EMMC中指定的扇区
mmc write <blk#>
7、uboot自启动环境变量
bootcmd
自启动的环境变量
- 该环境变量可以设置成
一到多个uboot命令
的集合(若有多个使用;分割) - 自启动模式下uboot就会按照bootcmd中命令的
顺序逐条执行
例子:
setenv bootcmd tftp 40008000 interface.bin\;go 40008000
saveenv
到这里就结束啦!