日期:2014-05-16  浏览次数:20605 次

Linux设备I/O (三)

(1)

因为外设和外围总线相匹配,而最流行的I/O总线是基于个人计算机模型的,所以即使没有独立IO端口地址空间的处理器,在访问外设时也要模拟成读写I/O端口。基于同样的原因,linux在所有的计算机平台上都实现了I/O端口,并且为了便于移植,内核对驱动程序隐藏了这些细节。

(2)

IO端口重映射是将IO端口映射为IO内存,这样就可以象操作IO内存一样操作IO端口了。这样做的好处是我们可以统一驱动程序的接口(都使用IO内存映射),避免为同一个设备提 供不同的驱动接口。这个函数同样定义在头文件中

extern void __iomem *ioport_map(unsigned long port, unsigned int nr);
extern void ioport_unmap(void __iomem *addr);