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 >
写内存(寄存器)
写数据到指定地址空间
static void write_mem(void *mapaddr, unsigned int value)
{
unsigned int *w_mem = (unsigned int *)mapaddr;
*w_mem = value;
}
linux下写内存(寄存器)指令
memtool < physical address > < value >
源码参考
链接: link.