Linux下内存(寄存器)调试工具memtool

Linux下内存(寄存器)调试工具memtool

映射物理地址到用户空间

实现映射关系后,进程就可以采用指针的方式读写操作这一段内存

mbase = mmap(0, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, (phyaddr & ~PAGE_MASK));

读内存(寄存器)

读取内存(寄存器)数据

static void read_mem(unsigned int phyaddr, void *mapaddr)
{
	int i;
	unsigned int *r_mem = (unsigned int *)mapaddr;
	unsigned char offset = sizeof(unsigned int);

	for(i = 0; i < READ_SIZE / offset; i += offset){
		printf("%08X: %08X %08X %08X %08X\n",
				phyaddr + i * offset, 
				*(r_mem + i + 0), 
				*(r_mem + i + 1), 
				*(r_mem + i + 2), 
				*(r_mem + i + 3));
	}

}

linux下读内存(寄存器)指令

memtool < physical address >memtool read

写内存(寄存器)

写数据到指定地址空间

static void write_mem(void *mapaddr, unsigned int value)
{
	unsigned int *w_mem = (unsigned int *)mapaddr;

	*w_mem = value;
}

linux下写内存(寄存器)指令

memtool < physical address > < value >
memtool write

源码参考

链接: link.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值