假设有一个使用内存映射I / O的设备,即分配给该设备的特定范围的物理内存
如果未使用虚拟内存系统,则通过使用相应物理地址完成的读/写操作来操作设备非常简单
如果有虚拟内存系统怎么办?
设备驱动程序需要知道分配给该设备的特定物理内存范围,但如果它应该使用虚拟地址而不是物理地址,它如何访问该地址范围?
答案 0 :(得分:1)
在内存映射IO设备的情况下,该设备共享的任何物理地址都可以使用ioremap()API [1]映射到内核虚拟内存。
因此,在您的情况下,我们可以使用ioremap()映射物理地址0x1234以获取其内核虚拟地址并开始将数据写入此地址。
答案 1 :(得分:0)
自从我完成它已经很长时间了,但我的回忆是,当你映射一块物理内存时,你的用户空间中的地址对应于那个物理内存。写入用户空间地址是对物理内存的写入。