打印
[嵌入式linux]

有关ioreamp的操作

[复制链接]
1220|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
maowa_2005|  楼主 | 2013-12-16 17:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
qyihan| | 2013-12-17 00:37 | 只看该作者
void *ioremap(unsigned long phys_addr, unsigned long size)
第二个参数是要映射的空间的大小,比如说,arm的一个寄存器是32位,4个字节,那么
(volatile unsigned long *)rGPADAT =(volatile unsigned long *)ioremap(GPADAT, 4)
那么在内核空间操作rGPADAT,就相当于操作GPADAT(需要定义)寄存器了。
如果是分配一块内存,那么第二个参数就根据自己的需要设置了,比如内核中dm9000的platform驱动,在板文件中,设置了内存资源,而在驱动中,进行了映射。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
drf63329272 + 1 很给力!
板凳
maowa_2005|  楼主 | 2013-12-17 08:38 | 只看该作者
qyihan 发表于 2013-12-17 00:37
void *ioremap(unsigned long phys_addr, unsigned long size)
第二个参数是要映射的空间的大小,比如说,a ...

多谢你的回答,了解了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

76

帖子

2

粉丝