ok6410学习笔记(8.mmap地址映射之第二种mmap驱动)

        最近弄mmap弄的特别烦,现在不想再弄了!!!但是还有一个地方的知识点没有搞定。就是mmap的驱动设备方法有两种,第一种是上面说过的用remap_pfn_range一次分配一段连续的物理页进行映射,有点像kmalloc分配到了真实的物理地址。第二种方式就是利用vm_operations_struct中的fault操作(这个过程在《linux设备驱动 宋保华》的P229页中有对vm_area_struct操作的说明),只是让mmap返回指针,再想要访问真实的物理设备的时候再启动请页异常(page fault),有点像malloc,vmalloc等。注意:在一些老版本的内核中,请页异常是通过nopage操作实现的不是fault。

代码以后在附上。

你可能感兴趣的:(ok6410学习笔记(8.mmap地址映射之第二种mmap驱动))