如果不是在芯片级公司工作,而是在产品级公司工作,当我们拿到一款芯片,厂家都会提供可以使用的bootloader,我们对u-boot基本掌握就行,只需要掌握如下命令。
目录
直接使用help或“?”可以查看当前uboot支持的命令

可以使用 help +其他命令,查看命令的使用说明。


环境变量如果不存在,则该命令创建变量,变量存在则修改替换
设置完环境变量记得保存,保存环境变量【saveenv】,否则重启后将恢复原来的值。
设置简单环境变量:=> setenv bootdelay 5

设置字符串形式的环境变量,需要用单引号括起来
=> setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
删除环境变量,直接设置某个变量为空,如:=> setenv aaaa
内存操作命令就是用于直接对内存操作命令,常用内存命令有md、nm、 mm、mw、cp和 cmp。
命令格式:
md[.b, .w, .l] address [# of objects]
命令中的[.b .w .l]对应 byte、word 和long,也就是分别以 1 个字节、2 个字节、4 个字节显示
如查看以0X30000000开始的10个字节的内存值,显示格式为.b(10的16进制是0xa)
md.b 30000000 a
![]()
命令格式:nm [.b, .w, .l] address
它会先读取地址里面原来的内容,在?后面修改新值,输入q退出修改。
mm [.b, .w, .l] address,每次修改地址值会自增
命令格式:mw [.b, .w, .l] address value [count]
将地址address后面的count个b/w/l长度都修改为值value
将 DRAM 中的数据从一段内存拷贝到另一段内存中,或者把NorFlash 中的数据拷贝到DRAM 中
命令格式:cp [.b, .w, .l] source target count
cmp 是比较命令,用于比较两段内存的数据是否相等
命令格式:cmp [.b, .w, .l] addr1 addr2 count
ping ipaddress
前提是先配置nfs服务器,linux下命令:sudo apt-get install nfs-kernel-server
命令格式:
nfs [loadAddress] [[hostIPaddr:]bootfilename]
loadAddress 是要保存的 DRAM 地址,[[hostIPaddr:]bootfilename]是要下载的文件地址。
如将文件下载到 80800000 地址:
nfs 80800000 192.168.2.25:/home/fourth/linux/nfs/zImage
命令格式:tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
loadAddress 是文件在 DRAM 中的存放地址,[[hostIPaddr:]bootfilename]是要从Ubuntu 中下载的文件。
使用tftp,在windows的话直接搜索tftpd这个软件。
在linux下32位运行 sudo apt-get install tftpd-hpa,64位运行sudo apt-get install tftpd openbsd-inetd,安装完默认路径在/srv/tftp,可以通过修改/etc/inetd.conf中最后一个路径来修改文件路径。
tftp 40000000 test.txt 把主机上test.txt下载到内存40000000的位置,test.txt中只有abcd几个字符,下载完毕,我们通过md命令查看内存,验证一下,成功。