memory-map i/o和port-map i/o

根据CPU架构的不同,其外设的映射分为两种:memory-map i/o和port-map i/o

这两种映射方式的主要区别:

  memory-map i/o:RAM和设备寄存器统一编址,使用同样的访问方式,嵌入式多使用

  port-map i/o:RAM和设备寄存器独立编制,使用不同的访问方式,并且对于外设的访问,使用的指令周期要多些,X86比较多

设备驱动程序调用接口:

  memory-map i/o:

  申请和释放端口:request_region/release_region

  对端口进行操作:inb/ine/inl/wtiteb.......

  port-map i/o:

  申请外设寄存器的RAM地址:request_mem_region/release_mem_region

  物理地址重映射:ioremap

  对i/0进行操作:ioread8....../iowrite......

为了使port-map i/0兼容memory-map i/o,实现port到mem的map,当然首先要申请port,然后调用ioport_map

物理地址重映射的目的是因为kernel使用的是虚拟地址,必须把物理地址映射成虚拟地址才能被kernel使用,这是MMU的概念了。

 

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值