此code,主要透過mmap讀寫 ,但是必須先知道memory的規劃
此code位置是0x10000000開始為mips register....
code位置
https://docs.google.com/file/d/0B8hm-I2M8BD7LXVfanVQQldIbEE/edit
如何看mmap失敗的原因?
#include <errno.h>
base_address = (unsigned long)mmap(0, reg+getpagesize(), PROT_READ | PROT_WRITE , MAP_SHARED, fd, 0);
if (base_address == MAP_FAILED) {
printf("mmap error:%s\n", strerror(errno));
return;
}
更新:
base_address = (unsigned long)mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE , MAP_SHARED, fd, reg);
第1個參數: 想要在哪裡開始創建映射位址,建議NULL由系統決定
第2個參數: 想要映射的大小
第6個參數: 想要被映射的物理記憶體位址
沒有留言:
張貼留言