Mmap命令信息

时间:2019-01-22 11:45:05

标签: linux mmap

我使用mmap在pci设备上进行访问,但是我有一些疑问。

1)看到有关pci设备访问的各种示例,我注意到在相同情况下,mmap是使用/ dev / mem文件执行的,就像这样

if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) PRINT_ERROR; map_base = mmap(0, map_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, target_base);

,在其他情况下,使用类似这样的pci设备描述符

if((fd = open("file /sys/devices/pci0001:00/0001:00:07.0/resource0", O_RDWR | O_SYNC)) == -1) PRINT_ERROR; map_base = mmap(0, map_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, target_base);

有什么区别?

2)在我的嵌入式设备中,我没有/ dev / mem文件。为什么?取决于内核如何编译?

我尝试使用此命令手动创建一个

mknod -m 660 /dev/mem c 1 1 chown root:kmem /dev/mem;

,但是mmap命令不起作用。 我该如何解决?

0 个答案:

没有答案