[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 是填充的長度

相同時:
在這裏插入圖片描述
不同時:
在這裏插入圖片描述

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