草庐IT

coherent

全部标签

c - dma_mmap_coherent 和 remap_pfn_range 有什么区别?

目前,我正在使用exampledriver从中学习,并从中建立了自己的自定义驱动程序。mmap代码几乎完全相同,除了我允许用户管理他们自己请求的大小并以此为基础进行内存分配,以及我在/dev中自动创建字符设备这一事实。为了解释上下文,对于我的用例,我想缩小我遇到的问题的范围。dma_mmap_coherent在使用kmalloc内存时可测试地工作,但是当我有一个保留的物理地址区域时,我想使用remap_pfn_range似乎安静地工作,并且dmesg不报告任何错误,但是当我去阅读,无论我在那里写了什么,它总是返回0xff字节。无论我是在ioremap内存之后在内核态中使用iowrite
12