一。Linux
linux方式下操实现方式比较多。比如在pci设备驱动中加个字符设备,然后再实现mmap方法。这样用户程序直接打开该字符设备,再进行mmap就可以得到映射以后的地址。但这样操作pci设备需要加载驱动。
另外可以用直接通过/proc/iomem查到设备所用的物理地址及大小。然后直接打开/dev/mem,进行mmap操作,offset选用该物理地址即可。(注意:open时最好加上O_LARGEFILE标记)
二。Solaris
Solaris下也有/dev/mem,但是经过测试,映射设备时,会失败。
采用设备驱动中实现的mmap是可以的。solaris驱动中直接实现xxx_devmap即可。
阅读(921) | 评论(0) | 转发(0) |