我需要澄清一下。我可以直接写入/dev/port
以直接访问并行端口,它可以正常工作(我可以打开插入端口连接器的LED)。但是,我想我可以对/dev/mem
做同样的事情吗? (http://tldp.org/LDP/khg/HyperNews/get/devices/fake.html)。当我尝试读写/dev/mem
时,我没有错误,但写入似乎永远不会反映在外部连接器上。我只是因为这不是我所期望的,因为我读到了关于写/dev/mem
的内容。
您是否可以通过/dev/mem
访问ioports?
答案 0 :(得分:2)
提出一些建议(未经测试)。可能是......
/dev/mem
要求硬件已经过MMIO映射,您还需要知道MMIO地址(通常不是0x378)。答案 1 :(得分:1)
编辑:这仅适用于x86处理器(可能还有其他一些)。
内存映射I / O与x86处理器上的端口I / O不完全相同。
jørgensen是正确的,因为内存在保护模式下重新映射 - 但是,I / O端口不能以这种方式重新映射。 /dev/port
直接指向I / O端口,而/dev/mem
映射到(我相信)物理ram(即未重新映射),因此在这种情况下,您要使用/dev/port
。< / p>
对于您提供的链接,它使用/dev/mem
进行内存映射I / O(同样,与I / O端口不同)。