用devmem2读写设备IO内存

背景

有时候定位Linux驱动的BUG时,如果能看到外设的寄存器那就很便于调试,但是临时写ioctl命令字不太现实,如果有一个像netcat那样的通用目的网络调试工具,是极好的。

devmem2

国外已经有人做了这个工具,名叫devmem2,体积很小,零依赖,代码也很简单,所以只有源码,没有编译好的deb、rpm等二进制包。

用法:

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

注意:该工具一次只能读/写1个寄存器

用法举例

查看某个寄存器的值

dh@dh:~$ sudo devmem2 0xb0400000
/dev/mem opened.
Memory mapped at address 0xb7f3b000.
Value at address 0xB0400000 (0xb7f3b000): 0xFFFFFFFF

改写某个寄存器的值

dh@dh:~$ sudo devmem2 0xb0400000 w 0x12345678
/dev/mem opened.
Memory mapped at address 0xb7ee5000.
Value at address 0xB0400000 (0xb7ee5000): 0xFFFFFFFF
Written 0x12345678; readback 0xFFFFFFFF
  • 选项w表示写入int数据,同理h表示shortb表示char

ps.上面命令虽然写入失败,但命令格式正确,失败是外设自身原因,不要在意这些细节😓

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值