在我的驱动程序中,我试图将从ioremap返回的地址映射到用户空间地址。
ioremap返回什么样的地址kmalloc地址有何不同?ioremap返回的地址remap_pfn_range发布于 2013-06-24 14:41:40
如果使用ioremap(),则不需要remap_pfn_range()。ioremap()将物理地址映射到内核虚拟地址。remap_pfn_range()将物理地址直接映射到用户空间。只需将您的物理地址(由PAGE_SHIFT向下移动以产生pfn)直接传递到remap_pfn_range()。你的问题按顺序:
virt_to_phys(),将内核虚拟地址转换为物理地址,则可以这样做。但是,如果实际上不需要内核访问这个内存范围,则跳过一步发布于 2013-06-24 12:19:41
ioremap()返回内核空间虚拟地址。这不能直接从用户空间访问。有一种名为mmap()的机制,工作示例参考这里和将物理地址映射到虚拟地址linux。
https://stackoverflow.com/questions/17274835
复制相似问题