在Linux系统下,对物理地址的读写是一件很不方便的事情,在做简单的测试的时候,可以使用devmem2工具直接读取物理地址中的数据,也可以直接向物理地址中写数据
一、获取devmem2工具
在基于Debian的系统(如Ubuntu)上,你可以使用以下命令安装:
sudo apt-get update
sudo apt-get install devmem2
二、使用devmem2访问物理地址
用法:
Usage: devmem2 { address } [ type [ data ] ]
address : memory address to act upon
type : access operation type : [b]yte, [h]alfword, [w]ord
data : data to be written
比如我要读取0x3f600000中的数据:
使用指令:devmem2 0x3f600000
我们可以看出,devmem工具是使用了/dev/mem这个驱动,将物理地址0x3f600000,映射到了虚拟地址0xb6f49000,然后将地址0x3f600000(0xb6f49000)中的数据0x12345678读了出来
如果我要向0x3f600000中写入int数据0x87654321:
使用指令:devmem2 0x3f600000 w 0x87654321