微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Linux系统对IO端口和IO内存的管理

Linux系统对IO端口和IO内存的管理

时间:11-22 来源:互联网 点击:

  1. unsignedlongport=(unsignedlong__force)addr;
  2. if(port<0x40000UL){
  3. BUG_ON((port&~PIO_MASK)!=PIO_OFFSET);
  4. port&=PIO_MASK;
  5. returninb(port);
  6. }else{
  7. returnreadb(addr);
  8. }
  9. }

七、总结

外设IO寄存器地址独立编址的CPU,这时应该称外设IO寄存器为IO端口,访问IO寄存器可通过ioport_map将其映射到虚拟地址空间,但实际上这是给开发人员制造的一个“假象”,并没有映射到内核虚拟地址,仅仅是为了可以使用和IO内存一样的接口访问IO寄存器;也可以直接使用in/out指令访问IO寄存器。

例如:Intel x86平台普通使用了名为内存映射(MMIO)的技术,该技术是PCI规范的一部分,IO设备端口被映射到内存空间,映射后,CPU访问IO端口就如同访 问内存一样。

外设IO寄存器地址统一编址的CPU,这时应该称外设IO寄存器为IO内存,访问IO寄存器可通过ioremap将其映射到虚拟地址空间,然后再使用read/write接口访问。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top