【驱动IO端口的疑惑】

[复制链接]
2948|1
 楼主| chenmi0201 发表于 2009-2-25 22:56 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;O’Reilly的LDD&nbsp;书中指出,访问IO口必须先用request_region注册,再用reiomap映射。&nbsp;但我看了几个开发板的通过IO口驱动LED的源码,好像都是直接对IO地址进行访问的,请问这是怎么回事?&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linux驱动中write_gpio_bit()可以对io内存进行访问,而ARM体系中IO内存和IO端口(外设)是统一编址的,照这样理解,访问外设和IO内存是同样的原理啊,为什么还需要iomap映射地址呢?对2410的某一个io口操作,实质操作的是寄存器(0x56000000+offset),这个位于SFR中的地址是物理地址吧?为什么可以不经过映射就可以访问呢?<br />&nbsp;&nbsp;&nbsp;还有request_region,request_mem_region,reiomap应该怎么用?<br /><br /><br /><br />初学ARM LINUX,高手勿见笑!&nbsp;
wangkj 发表于 2009-2-26 08:40 | 显示全部楼层

uclinux不需要映射,另外,也可能再别的区域进行映射

或者是其他位置已映射。<br />按照书上写的肯定没错,不那样做的可能正常,属于非规范写法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

7

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部