我通过‘text’我的PC linux的/proc/ioports文件得到了一个奇怪的文本,
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc0
...
我不理解的是每个条目的前面部分,例如,看看第一个条目,它是否意味着31个(十六进制0x1f)端口被dma1占用?如果是真的,我无法想象x86处理器上有多少端口,因为我知道在一个8位微控制器上只有几个8位端口。
谁能详细说明这个数字的含义,以及x86处理器的io端口?
发布于 2011-10-17 15:14:39
它是使用request_region
内核函数的内核驱动程序所声明的I/O端口区域的列表。因此,它不是可用的I/O端口或设备的完整列表,而是各种内核驱动程序所声明的。request_region
机制允许内核阻止多个驱动程序与同一设备对话。
发布于 2011-10-15 23:42:08
/proc/ ports列出了设备驱动程序在Linux内核中提供的端口范围和名称,以及所述驱动程序所声明和处理的端口范围的端口。
例如,RTC Linux内核驱动程序要求io端口0070 - 007f。
可以假设驱动程序声明的上述端口范围对应于相应硬件提供的适当端口范围,但您应该注意,实际上没有任何机制可以确保它们确实是这样的。
https://stackoverflow.com/questions/7778486
复制相似问题