Uboot配置编译及常见指令

来源:互联网 发布:互联网数据 编辑:程序博客网 时间:2024/06/07 14:42
1、配置编译Uboot
(1)配置Uboot
因为一套Uboot可以编译出很多用于不同开发板的映象,配置的目的就是告诉Uboot编译出来的映象运行在哪个开发板上。
①打开Makefile
\210 查找开发板相关的配置选项
eg:如x210中,makefile中描述的配置选项是 X210_sd_config
②配置Uboot
make (配置选项)_config
③编译
make ARCH =arm CROSS_COMPILE=arm-linux-(交叉编译工具链的名字)
2、Uboot命令详解
(1)帮助命令
Uboot提供了丰富的命令集,但不同的开发板所支持的命令不一样(可配置),Uboot环境下面,输入help可以查看当前开发板所支持的命令。
(2)环境变量相关命令
print/printenv 可以将当前Uboot下的所有环境变量打印到当前的命令行中。
环境变量的作用就是用于保存很多配置信息的。
(3)环境变量的增删改
setenv
setenv 环境变量名 环境变量值
①如果这个环境变量名之前就有,那么就是修改环境变量的值
②如果这个环境变量名之前没有,那么就是添加环境变量。
③如果setenv 环境变量 后面没有环境变量的值的话,那么就是删除环境变量
(4)保存环境变量
savenv
(5)程序下载命令
tftp 通过网络下载文件
注意:使用tftp需要先配置好网络;配置网络的关键设置:①开发板、windows、虚拟机三者同一网段;②虚拟机设置为桥接模式,选中的网卡必须是windows中的物理网卡;③长期使用尽量使用静态IP;④配置好之后要进行网络测试ping
tftp 开发板内存地址 要下载的程序文件
eg:tftp 0xc0080000 uImage.bin
(6)执行程序
bootm 内存地址 参数(如果执行需要参数)
执行的是固定格式的二进制程序;
固定格式:指的是我们在下载程序的时候,会在可执行程序的前面加一个头信息,这个头信息中包含了操作系统的信息、文件的压缩方式等等。(也就是说这个指令是带操作系统下的程序执行指令)
如果是裸机程序,在Uboot下使用go +程序的内存地址 进行执行
(7)查看内存内容
md 开发板中的内存地址
变种:md.b(字节) md.w(字) md.l
(8)修改内存内容
mm 要修改内存的首地址
注:
①mm命令可用于修改一个范围的内存地址下的内容,方式是一个内存地址一个内存地址的修改,修改完一个会自动跳转到下一个内存地址下。
②修改写入的数据必须是一个合法的十六进制立即数
③如果中间的某个地址下的值不用修改,那么只需要敲回车,不用输入值,即原值不动。
④如果想要退出mm命令,则输入空格,然后回车就会退出修改状态。
(9)擦除NandFlash
nand erase 起始地址(start) 要清除的长度(len)
擦除start处开始的,长度为len的区域
eg:
nand erase 0x4000 0000 0x5000 0000
(10)写/读nand Flash
nand write 内存起始地址 flash起始地址 长度len
将内存起始地址处,长度为len的数据,写入flash起始地址处
eg: nand write c000 8000 4000 0000 5000 0000
nand read 内存起始地址 flash起始地址 长度len
将flash中起始地址处长度为len的数据拷贝到起始地址为内存的起始地址的地方。
(11)设置自启动
①设置从nand flash自动启动
setenv bootcmd nand read c0008000 4000 0000 5000 0000\;bootm c000 8000
②设置自动下载内核到内存启动
setenv bootcmd tftp c000 8000 UImage.bin \;bootm c000 8000