[I.MX6UL] U-Boot 命令使用(三) 内存操作命令

1、md 命令

md 命令用于显示内存值,格式如下:

md[.b, .w, .l] address [# of objects]

  1. 命令中的[.b .w .l]对应 byte、word 和 long,也就是分别以 1 个字节、2 个字节、4 个字节
    来显示内存值。
  2. address 就是要查看的内存起始地址
  3. [# of objects]表示要查看的数据长度(根据参数1来决定)

uboot 命令中的数字都是十六进制的!不是十进制的!

比如你想查看以 0X80000000 开始的 20 个字节的内存值,显示格式为.b 的话,应该使用如下所示命令:

md.b 80000000 14

而不是

md.b 80000000 14

在这里插入图片描述

2、nm 命令

nm 命令用于修改指定地址的内存值,命令格式如下:

nm [.b, .w, .l] address

  1. 命令中的[.b .w .l]对应 byte、word 和 long,也就是分别以 1 个字节、2 个字节、4 个字节
    来修改内存值。
  2. address 就是要修改的内存起始地址

在这里插入图片描述
在这里插入图片描述

修改完成以后在使用命令 md 来查看一下有没有修改成功,如图所示:
在这里插入图片描述

3、mm 命令

mm 命令也是修改指定地址内存值的,但是每次修改会递增地址,而nm不会递增。
在这里插入图片描述
在这里插入图片描述

4、mw 命令

命令 mw 用于使用一个指定的数据填充一段内存,命令格式如下:

mw [.b, .w, .l] address value [count]

  1. 命令中的[.b .w .l]对应 byte、word 和 long,也就是分别以 1 个字节、2 个字节、4 个字节
    来修改内存值。
  2. address 就是要修改的内存起始地址
  3. value 为要填充的数据
  4. count 是填充的长度

比如使用.l 格式将以 0X80000000 为起始地址的 0x10 个内存块(0x10 * 4=64 字节)填充为 0X0A0A0A0A,命令如下:

mw.l 80000000 0A0A0A0A 10

在这里插入图片描述

5、cp 命令

cp 是数据拷贝命令, 用于将 DRAM 中的数据从一段内存拷贝到另一段内存中, 或者把 Nor Flash 中的数据拷贝到 DRAM 中。命令格式如下:

cp [.b, .w, .l] source target count

  1. 命令中的[.b .w .l]对应 byte、word 和 long,也就是分别以 1 个字节、2 个字节、4 个字节
    来修改内存值。
  2. source 为源地址
  3. target 为目的地址
  4. count 拷贝的长度

使用.l 格式将 0x80000000 处的地址拷贝到 0X80000100 处, 长度为 0x10 个内存块(0x10 * 4=64 个字节),命令如下所示:

cp.l 80000000 80000100 10

在这里插入图片描述

6、cmp 命令

cmp 是比较命令,用于比较两段内存的数据是否相等,命令格式如下:

cmp [.b, .w, .l] addr1 addr2 count

  1. 命令中的[.b .w .l]对应 byte、word 和 long,也就是分别以 1 个字节、2 个字节、4 个字节
    来修改内存值。
  2. addr1 为第一段内存首地址
  3. addr2 为第二段内存首地址
  4. count 是填充的长度

相同时:
在这里插入图片描述
不同时:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章