了解uboot及常用命令
一、bootloader概念
boot:引导
loader:加载
bootloader:引导加载内核系统
二、u-boot和bootloader的关系?
bootloader是一些列引导内核程序的统称。
u-boot属于bootloader中的一种。
bootloader 种类:vivi redboot u-boot bios …
嵌入式开发中都是使用的u-boot。
三、u-boot的特点
1、u-boot是一个开源的软件
2、uboot支持多种架构,
arm powerPC mips x86 …
3、u-boot代码短小精悍
4、u-boot就是一个裸机程序
5、u-boot完成部分硬件的初始化
串口,内存,网卡,时钟,…
6、u-boot用于引导linux内核启动,
并且给内核传递参数
7、u-boot是一个短命鬼,
u-boot启动内核之后,任务就结束。
四、u-boot中支持的常用的命令
1、help 用于查看u-boot支持的所有的命令
help u-boog命令命名 : 查看帮助手册
2、loadb
loadb mem_addr
3、go
go mem_addr
4、printenv/pri/print 打印u-boot的环境变量
baudrate=115200 波特率
board_name=FS6818 板子名
bootargs=root=/dev/nfs nfsroot=192.168.0.171:/home/hqyj/nfs/rootfs rw console=/dev/ttySAC0,115200 init=/linuxrc ip=192.168.0.222
bootcmd=loadb 43c00000;go 43c00000 boot命令
bootdelay=50 倒计时时间
ethaddr=00:e2:1c:ba:e8:60 MAC地址
ethprime=RTL8211 网卡名字
gatewayip=192.168.0.1 开发板的网关
ipaddr=192.168.0.222 开发板的IP地址
netmask=255.255.255.0 开发板的子网掩码
serverip=192.168.0.171 Ubuntu的IP地址
stderr=serial 标准出错
stdin=serial 标准输入
stdout=serial 标准输出
Environment size: 886/32764 bytes 环境变量分区的大小
5、u-boot环境变量的增/删/改
setenv saveenv
1)增加新的环境变量
setenv 新的环境变量名 环境变量对应的值
注意:
a) 环境变量名之间不允许有空格
b) 默认环境修改的是内存中的环境变量
saveenv :将设置的环境变量从内存中保存到flash中
2) 删除环境变量
setenv 要删除的环境变量名
saveenv
3) 修改环境变量
setenv 要修改的环境变量名 新的变量值
saveenv
6、tftpboot/tftp命令
作用:使用tftp服务,从ubuntu中下载程序到开发板中
格式:tftp mem_addr bootfile_name
下载镜像文件到内存的mem_addr地址中。
7、ping命令
作用:用于和网络进行是否可以通行的测试命令
格式:ping IP地址
8、md命令
作用:查看内存空间中某一块区间的值
格式:md mem_addr
9、nm命令
作用:修改内存地址中的值
nm mem_addr
10、mmc命令
mmc read addr blk# cnt
addr:内存的起始地址
blk#:MMC的起始块号
cnt:块的个数
一块是512字节
从MMC的blk#为起始块号,读cnt块,读到内存的addr起始地址
mmc write addr blk# cnt
addr:内存的起始地址
blk#:MMC的起始块号
cnt:块的个数
一块是512字节
以内存addr为起始地址的内容,写到MMC的以blk#为起始块,写cnt块
mmc erase blk# cnt
blk#:MMC的起始块号
cnt:块的个数
擦除EMMC的以blk#为起始位置,操作cnt块数据。