我正在研究一个小型嵌入式系统。当我的Linux启动到用户空间时,我知道我的设备在物理内存中。我想将它们映射到用户空间虚拟地址。目前,我正在通过一个内核模块来完成它。我使用vmalloc/kmalloc(取决于大小),然后在返回的虚拟地址上使用ioremap_page_range来映射我的物理地址。我不认为这是正确的方式。首先我分配内存,然后我要求内核将该虚拟地址空间重新映射到一些不同的物理地址空间。 (在vmcall/kmalloc中最初映射的物理 - >虚拟是没用的,因为我不关心这些物理页面,这绝对不好)。将物理地址映射到虚拟地址linux
取而代之,有一种更好的方式将已知物理内存映射到用户空间进程。 (我知道的比我的用户空间程序等,没有人要去触摸内存。)
感谢
我在做remap_pfn之前需要先做mmap。但是,我不想那样做。我没有附带那个内存的设备。所以,我想直接将该物理内存映射到虚拟地址。谢谢 – 2012-07-24 17:14:02