QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2246|回复: 1

ioremap的疑问

[复制链接]
发表于 2006-10-11 19:29:29 | 显示全部楼层 |阅读模式
现在想写一个驱动程序(for ARM),已经知道物理地址,如0x01c02000,由于内核运行时使用物理地址,是不是可以直接使用readb(0x01c02000)?但我看到可能需要用ioremap,为什么要把物理地址映射到内核虚拟地址空间范围(3-4G)?还有我见到也有使用IO_ADDRESS(0x01c02000)这种情况,有什么异同呢?
发表于 2006-10-17 14:29:46 | 显示全部楼层
驱动程序访问的是IO空间,与一般我们说的内存空间是不同的。
外设的IO空间地址是系统启动后才知道,CPU通常并没有为这些已知的外设I/O内存资源的物理地址预定义虚拟地址范围
所以驱动程序并不能直接通过物理地址访问I/O内存资源,而必须将它们映射到核心虚地址空间内
然后才能根据映射所得到的核心虚地址范围,通过访内指令访问这些I/O内存资源。

记得论坛有个相关贴子,说得比较详细,你可以找一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-22 15:32 , Processed in 0.035424 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表