uboot命令使用学习(2)

学习目标:

uboot命令使用学习(2)

学习内容:

学习使用了正点原子的I.MX6ULL教程及开发平台。
使用uboot的内存操作命令,直接对DRAM进行读写操作。
1、md
2、nm
3、mm
4、mw
5、cp
6、cmp

学习时间:

2022-05-29

学习产出:

一、md显示内存值
”md“命令用于显示内存值,格式如下:
md[.b,.w,.l] address [#of objects]
命令中的[.b,.w,.l]对应byte,word,long,也就是分别以1字节、2字节、4字节来显示内存值。address就是要查看的内存起始地址,[#of object]表示要查看的内存数据长度。这个数据长度的单位不是字节,而是跟所选择的显示格式有关。比如设置的产看数据长度为20(0x14),如果显示的格式为.b,那就表示20字节;如果显示的格式为.w,表示20个word,即20x2=40字节;如果显示的格式为.l,表示20个long,即20x4=80字节。另外uboot中的数字都是十六进制的,不是十进制的!
比如查看以0x80800000开始的16个数据,
md.b 80800000 10 (查看16字节数据)
md.w 80800000 10(查看16x2=32字节数据)
md.l 80800000 10(查看16x4=64字节数据)
如图:
在这里插入图片描述
二、nm命令修改内存值
nm名利给用于修改指定内存地址的值,命令格式如下:
nm[.b,.w,.l] address
nm命令同样可以用.b,.w,.l指定操作格式,比如现在以.l格式修改内存地址0x80000000的数据为12345678,在uboot命令行下输入:
nm.l 80000000
如图所示
在这里插入图片描述
80000000表示要修改的内存地址,ffffff7f表示内存地址80000000现在的值,?后面就可以输入要修改为的数据12345678,输入完毕后按下回车,在按下q推出即可。如图所示。
在这里插入图片描述
修改完后使用md命令查看是否修改成功
在这里插入图片描述
三、mm命令修改内存值
mm命令也是修改指定内存地址的值,使用mm命令修改内存地址的时候地址会自增。比如以.l格式修改从80000000内存地址开始的值,如图所示
在这里插入图片描述
四、mw命令
mw命令用于使用一个指定的数据填充一段内存,命令的内存格式如下:
mw[.b,.w,.l] address value [count]
mw命令同样可以以.b,.w,.l来指定操作格式,address表示要填充的内存起始地址,value为要填充的数据,count是填充的长度。比如使用.l格式将以80000000为起始地址的0x10个内存块(16x4=64字节)填充为0x12345678,然后使用md命令查看,如图所示。
在这里插入图片描述
五、cp命令
cp是数据拷贝命令,用于将DRAM中的数据从一段内存地址拷贝到另一段内存地址,或者把NorFlash中的数据拷贝到DRAM中。命令格式如下:
cp[.b,.w,.l] source target count
cp命令同样可以以.b,.w,.l来指定操作格式,source为源地址,target为目的地址,count为拷贝的长度。例如使用.l格式将80000000处的数据拷贝到地址80000100处,长度为0x10个内存块(416=64字节),如图所示。
在这里插入图片描述
先使用命令md查看80000000和80000100处的数据,然后使用命令cp.l将从80000000开始的16个内存块拷贝到80000100内粗地址处,最后使用命令md查看80000100内存地址的数据。
六、cmp命令
cmp是比较命令,用于比较两段内存的数据是否相等,命令格式如下:
cmp[.b,.w,.l] addr1 addr2 count
cmp命令同样可以以.b,.w,.l来指定操作格式,addr1为第一段内存首地址,addr2为第二段内存首地址,count为要比较的长度。例如使用.l格式来比较80000000和80000100这两个内存地址中的数据是否相等,比较的长度为0x10(4
16=64字节),如图所示。
在这里插入图片描述
两个内存地址中的数据相等。再来比较80000200和80000400为首地址的内存数据是否相等。如图所示。
在这里插入图片描述
可以看出以这两个内存地址为首地址中的内存数据并不相等。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
=> help ? - alias for 'help' autoscr - run script from memory base - print or set address offset bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation dhcp - invoke DHCP client to obtain IP/boot params echo - echo args to console erase - erase FLASH memory flinfo - print FLASH memory information go - start application at address 'addr' help - print online help iminfo - print header information for application image imls - list all images found in flash itest - return true/false on integer compare loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) printenv - print environment variables protect - enable or disable FLASH write protection rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol version - print monitor version

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值