我是否可以通过在我的驱动程序(Linux内核)中使用物理寻址(而不是虚拟)的内存指针来加载RAM中的数据,而无需在虚拟寻址中分配页面(PDE / PTE)?
答案 0 :(得分:3)
是的! “/ dev / mem”是物理内存的图像,您甚至可以从用户空间访问它。
例如,要访问实际地址0x7000000
,下面的代码总结了以下步骤:
fd = open("/dev/mem", O_RDWR);
map = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x7000000);