当前位置:   article > 正文

linux mmap驱动实现_linux驱动mmap

linux驱动mmap

在实现驱动程序的mmap函数时,要注意映射地址的转换问题,见代码。

 

定义一个设备结构体:

这里面这个MEMSIZE,最小都要是4096,因为内存映射是以页为单位的。

在实现simple_remap_mmap函数时,代码如下

注意函数开头的vma->vm_pgoff = ((u32)virt_to_phys(leedriverp->mem)) >> PAGE_SHIFT;

leedriverp->mem是个内核虚拟地址,应该通过virt_to_phys转换成物理地址,再进行左移操作,就OK了。

之后定义一下vm_ops

并且在file_operations中添加.mmap=simple_remap_mmap,整个过程就完成了

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/624816
推荐阅读
相关标签
  

闽ICP备14008679号