uboo对内存操作读写命令的基本使用

内存操作命令

直接对DRAM进行读写的操作,uboot常用的内存操作命令有md,nm,mm,mw,cp和cmp.

md命令: 显示内存值

c 复制代码
# md
md - memory display
Usage:
md [.b, .w, .l, .q] address [# of objects]
b:1个字节 byte 
w:2个字节 world 
l:4个字节 long 
of objects 以word 为单位的16进制数目
md.b 80000000 14   //以内存开始地址80000000的内存数据
80000000: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a    ................
80000010: 0a 0a 0a 0a 
md.l 80000000 14
80000000: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000010: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000020: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000030: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000040: f7c62eba 83cc816e a1c2ec9e d457444a    ....n.......JDW.

nm命令用于修改指定地址内存值 //按q退出

c 复制代码
Usage:
nm [.b, .w, .l, .q] address
# nm.l 80000000
80000000: 00000000 ? 99
80000000: 00000099 ? q
# md.l 80000000
80000000: 00000099

mm命令用于修改指定地址内存值,地址会++

c 复制代码
# mm.l 80000000   
80000000: 0a0a0a0a ? 0x00
80000004: 0a0a0a0a ? 3
80000008: 0a0a0a0a ? 33
8000000c: 0a0a0a0a ? 33
80000010: 0a0a0a0a ? 33
80000014: 0a0a0a0a ? q
# md.l 80000000 6
80000000: 00000000 00000003 00000033 00000033    ........3...3...
80000010: 00000033 0a0a0a0a                      3.......

mw命令

命令mw用于使用一个指定的数据填充一段内存

c 复制代码
# mw
mw - memory write (fill)
Usage:
mw [.b, .w, .l, .q] address value [count]
# mw.l 80000000  0a0a0a0a 10
# md.l 80000000 10
80000000: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000010: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000020: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000030: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
# 

cp命令

cp是数据拷贝命令,用于将DRAM中数据从一段内存拷贝到另一段内存中.

c 复制代码
Usage:
cp [.b, .w, .l, .q] source target count
cp.l 80000000 80000010 10
# mw.l 80000000  0a0a0a0a 10
# cp.l 80000000 80000010 10 
# md.l 80000010 10          
80000010: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000020: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000030: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................
80000040: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a    ................

cmp命令:

比较命令,用于比较两段内存的数据是否相等

c 复制代码
Usage:
cmp [.b, .w, .l, .q] addr1 addr2 count
# cmp.l 80000000  80000010 10
Total of 16 word(s) were the same

# cmp.l 80000000  80000050 10    
word at 0x0000000080000000 (0xa0a0a0a) != word at 0x0000000080000050 (0xedb43e85)   //不相等
Total of 0 word(s) were the same
相关推荐
mounter62542 分钟前
MACsec 全景解析:从技术演进、核心架构到 DPU 硬件卸载与 K8s 大规模调度实战
linux·kubernetes·linux kernel·kernel·macsec
IT邦德2 小时前
Dify1.6基于ubuntu系统的部署实战
linux·运维·ubuntu
吠品3 小时前
Java byte数组与String互转:编码细节与踩坑记录
java·linux·服务器
木白CPP3 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
RisunJan4 小时前
Linux命令-times(进程累计时间显示)
linux·运维·chrome
Titan20245 小时前
Linux网络基础知识
linux·服务器·网络·c++·学习
皮皮蟹虾饺6 小时前
NCCL 源码解析:通信器从出生到消亡的完整一生
linux·人工智能·ubuntu·语言模型·kubernetes
Java&Develop6 小时前
QuantDinger 宝塔 Linux 部署完整指南
linux·运维·状态模式
RisunJan7 小时前
Linux命令-tcpdump(网络数据包捕获)
linux·网络·tcpdump
Titan20247 小时前
Linux网络学习:套接字、UDP的封装与应用
linux·服务器·开发语言·网络·c++