use*_*146 5 linux-device-driver embedded-linux
我通过"捕获"我的PC linux的/ proc/ioports文件获得了一个奇怪的文本,
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc0
...
Run Code Online (Sandbox Code Playgroud)
我不明白的是每个条目的前面部分,例如看第一个条目,是否意味着dma1占用的端口是31(十六进制为0x1f)?如果是真的,我无法想象x86处理器上有多少端口,因为我知道8位MCU上只有几个8位端口.
任何人都可以详细说明数字的含义,以及x86处理器的io端口吗?
它是内核驱动程序使用request_region内核函数声明的I/O端口区域列表.因此,它不是可用的I/O端口或设备的完整列表,只是各种内核驱动程序声明的那些.该request_region机制允许内核阻止多个驱动程序与同一设备通信.
/proc/ioports 列出了 Linux 内核中设备驱动程序提供的 ioport 的范围和名称,以及由所述驱动程序声明和处理的端口范围的端口。
例如,RTC Linux 内核驱动程序占用 io 端口 0070 - 007f。
人们会假设驱动程序声明的所述端口范围对应于相应硬件提供的适当端口范围,但您应该注意,实际上没有机制可以确保它们确实如此。
| 归档时间: |
|
| 查看次数: |
2733 次 |
| 最近记录: |