UBOOT使用基础篇

日期:2022-09-30

版本号:V1.0

作者:snow

目录

一、基本概念... 1

二、基本信息... 1

2.1、环境变量读写... 1

2.2、常用环境变量... 1

2.2.1 通信相关... 1

2.2.2 启动相关项... 1

2.2.3 其他环境变量... 2

2.3、信息查询命令... 2

三、数据操作... 2

3.1、内存操作... 2

3.1.1 读取内存... 2

3.1.2 修改内存... 2

3.1.3 直接写入... 2

3.1.4 复制... 2

3.1.5 比较... 2

3.1.6 内存测试... 3

3.2、以太网通信&传输... 3

3.2.1 ping. 3

3.2.2 dhcp. 3

3.2.3 nfs 3

3.2.4 tftp. 3

3.3、flash操作... 3

3.3.1 设备操作... 3

3.3.2 设备数据操作... 3

3.3.3 设备参数配置... 4

3.4、文件系统... 4

3.4.1 文件系统基本操作... 4

3.4.2 格式文件操作... 4

四、内核引导... 4

4.1 引导zimage. 4

4.2 引导uimage/ramdisk. 4

4.3 默认引导... 5

一、基本概念

二、基本信息

2.1、环境变量读写

(1)打印环境变量:printenv/print

(2)设置环境变量:setenv env var

(3)保存环境变量:saveenv

2.2、常用环境变量

2.2.1 通信相关

2.2.1.1 串口

baudrate:串口波特率

2.2.1.2 本地以太网

ethaddr:网口MAC地址

ipaddr:网口IP地址

gatewayip:子网掩码

netmask:默认网关

2.2.1.3 远端服务主机

serverip:服务端网口地址

2.2.2 启动相关项

bootdelay:uboot启动后进入linux的自动倒数秒数,

boottargs:保存着uboot传递到linux内核的参数

bootcmd:保存着uboot默认的命令,uboot倒计时以后就会执行bootcmd命令

2.2.3 其他环境变量

mtdpart :boot使用环境mtdparts 来指定mtd分区

2.3、信息查询命令

(1)命令查询:help/?

(2)开发版信息:bdinfo

(3)uboot版本:version

三、数据操作

3.1、内存操作

3.1.1 读取内存

md[.b, .w, .l] address [num]

b w l分别代表1、2、4个字节,num代表要查看的数量(实际字节数为num*单个宽度)

3.1.2 修改内存

(1)单次修改

nm[.b, .w, .l] address

命令输入后uboot会显示当前值并提示用户输入更新值(按q退出)

(2)连续修改

mm[.b, .w, .l] address [可选 数量]

命令输入后uboot会显示当前值并提示用户输入更新值(按q退出)

(用户输入后会地址自增,并提示用户接着输入)

3.1.3 直接写入

mw[.b, .w, .l] address value [数量]

3.1.4 复制

cp[.b, .w, .l] source target count

3.1.5 比较

cmp[.b, .w, .l] addr1 addr2 count

3.1.6 内存测试

mtest 80000000 80001000

3.2、以太网通信&传输

uboot支持dhcpping nfs tftpboot

3.2.1 ping

与常规用法一致

3.2.2 dhcp

与常规用法一致

3.2.3 nfs

nfs [loadAddress] [[hostIPaddr:]bootfilename]

3.2.4 tftp

nfs [loadAddress] [可选 hostIPaddr:] bootfilename

hostIPaddr默认为serverip, bootfilename不需要完整路径

3.3、flash操作

uboot支持EMMC和SD卡,使用mmc命令进行操作

3.3.1 设备操作

(1)扫描设备:mmc rescan

(2)切换设备:mmc dev 设备id [可选 :分区id,默认0]

(3)列出有效设备:mmc list

(4)复位设备:mmc rst

3.3.2 设备数据操作

(1)读取数据:mmc read

(2)写入数据:mmc write memaddr 起始扇区id 写入扇区数量

3.3.3 设备参数配置

(1)输出当前设备信息:mmc info

(2)扫描分区:mmc part

(3)设置分区:mmc hwpartition

(4)指定BOOT_BUS_WIDTH:mmc bootbus

(5)指定PARTITION_CONFIG:mmc partconf

(6)设定DSR寄存器:mmc setdsr

(7)指定BOOT分区大小:mmc bootpart

(8)指定ROMB分区大小:mmc bootpart

3.4、文件系统

3.4.1 文件系统基本操作

(1)查询文件系统格式:fstype 接口(如mmc) 设备id [可选 :分区id,默认0]

支持fat ext2/3/4等格式

3.4.2 格式文件操作

以fat格式文件为例,ext2\4等同理。

(1)查询文件系统信息:fatinfo 接口(如mmc) 设备id [可选 :分区id,默认0]

()查询目录与文件:fatls 接口 设备id [可选 :分区id,默认0]

()加载文件至内存:fatload 接口 设备id [可选 :分区id] 目标内存地址 路径名 [可选 读取数量,默认全部] [可选 偏移量,默认0]

()将内存数据写入文件:fatwrite 接口 设备id [可选 :分区id] 目标内存地址 路径名 [可选 读取数量,默认全部] [可选 偏移量,默认0]

四、内核引导

4.1 引导zimage

bootz addr initrd[:size] [可选 fdt]

addr代表zimage内核在ddr中的位置

initrd代表临时根文件系统位置(用于两阶段启动机制,若无此配置用-替代)

size临时根文件系统大小

fdt设备树在ddr中的位置

注(bootz还可以用于加载ext4文件系统)

4.2 引导uimage/ramdisk

bootm addr initrd[:size] [可选 fdt]

addr代表uimage内核在ddr中的位置

initrd代表临时根文件系统位置(用于两阶段启动机制,若无此配置用-替代)

size临时根文件系统大小

fdt设备树在ddr中的位置

注(bootm还可以用于加载ramdisk文件系统)

4.3 默认引导

boot

由boot会通过run执行环境变量bootcmd中的内容,bootcmd先通过各种方式将镜像文件拷贝至ddr,随后bootcmd通过bootz或者bootm引导内核镜像。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值