U-BOOT
使用正点原子已经移植好的U-BOOT编译完成后拷贝到SD卡中烧写到板子上中,将开发板设为SD卡启动模式,上电启动开发板;打开 MobaXterm 终端模拟软件,设置好串口参数连接开发板 USB 调试串口,最后按核心板上的 PS_RST 复位按钮复位开发板,在串口终端出现“Hit any key to stop autoboot:”倒计时时按下enter键打断它自动启动Linux内核,进入U-BOOT命令行模式:(help里用于一些具体的指令)
查看板卡信息:
1.信息查询有关的命令有 3 个:bdinfo、printenv 和 version :
2.1.环境变量的操作涉及到两个命令:setenv 和 saveenv,命令 setenv 用于设置或者修改环境变量的值。命令 saveenv 用于保存修改后的环境变量,一般环境变量是存放在外部 flash中的,uboot 启动的时候会将环境变量从 flash 读取到 DRAM 中。所以使用命令 setenv 修改的是 DRAM 中的环境变量值,修改以后要使用 saveenv 命令将修改后的环境变量保存到 flash
中,否则的话 uboot 下一次重启会继续使用以前的环境变量值。比如我们要将环境变量 bootdelay 该为 5,就可以使用如下所示命令:(修改 bootdelay 以后,重启开发板,uboot 就是变为 5 秒倒计时)
setenv bootdelay 5
saveenv
2.2命令 setenv 也可以用于新建命令,用法和修改环境变量一样,比如新建一个环境变量 author,author 的值为“alientek”:
setenv author alientek
saveenv
新建命令 author 完成以后重启 uboot,然后使用命令 printenv 查看当前环境变量
2.3删除环境变量也是使用命令setenv,要删除一个环境变量只要给这个环境变量赋空值即可,比如删除掉上面新建的author 这个环境变量:
setenv author
saveenv
操作如下:
3.内存操作命令:
命令中的[.b .w .l]对应 byte、word 和 long,也就是分别以 1 个字节、2 个字节、4 个字节来显示内存值。address 就是要查看的内存起始地址,[# of objects]表示要查看的数
据长度,这个数据长度单位不是字节,而是跟你所选择的显示格式有关。比如你设置要查看
的内存长度为 20(十六进制为 0x14),如果显示格式为.b 的话那就表示 20 个字节;如果显示
格式为.w 的话就表示 20 个 word,也就是 20*2=40 个字节;如果显示格式为.l 的话就表示 20
个 long,也就是 20*4=80 个字节。另外,uboot 命令中的数字都是十六进制的,不是十进制的。
比如你想查看以 0X8000000 开始的 20 个字节的内存值,显示格式为.b 的话,应该使用如
下所示命令:md.b 8000000 14。而不是:md.b 8000000 20。下面三个命令是有区别的,分别代表16个、32个、64个字节
md.b 8000000 10
md.w 8000000 10
md.l 8000000 10
4.nm命令:修改指定地址内存值
5.mm命令:也是修改指定地址内存值的,使用 mm 修改内存值的时候地址会自增,而使用命令
nm 的话地址不会自增
6.mw命令:使用一个指定的数据填充一段内存
7.cp 是数据拷贝命令,用于将 DRAM 中的数据从一段内存拷贝到另一段内存。使用.l 格式将 0x8000000 处的地址拷贝到 0X8000100 处,长度为 0x10 个内存块(0x10 * 4=64 个字节)
8.cmp 是比较命令,用于比较两段内存的数据是否相等