我需要一些澄清。我可以直接写入/dev/port以获得对并行端口的直接访问,并且它工作得很好(我可以打开插入端口连接器的LED)。然而,我认为我可以用/dev/mem?(http://tldp.org/LDP/khg/HyperNews/get/devices/fake.html)做同样的事情。当我尝试读写/dev/mem时,我没有得到任何错误,但是写入似乎从来没有反映在外部连接器上。我之所以问这个问题,只是因为根据我读到的关于写/dev/mem的文章,这不是我所期望的。
您可以不通过/dev/mem访问ioports吗
发布于 2012-02-21 06:53:21
提供一些建议(未经测试)。可能是因为...
/dev/mem要求硬件已进行MMIO映射,并且您还需要知道MMIO地址(通常不是0x378)。发布于 2013-06-12 21:38:51
编辑:这只适用于x86处理器(可能还有其他一些处理器)。
内存映射I/O与x86处理器上的端口I/O不完全相同。
jørgensen是正确的,因为内存是在保护模式下重新映射的-但是,I/O端口不能以这种方式重新映射。/dev/port直接引用I/O端口,而/dev/mem映射到(我相信)物理ram (即未重新映射),因此在本例中,您希望使用/dev/port。
至于您提供的链接,它将/dev/mem用于内存映射的I/O (同样,与I/O端口不同)。
https://stackoverflow.com/questions/9368469
复制相似问题