打印
[嵌入式linux]

linux 申请内存空间request_mem_region的问题

[复制链接]
1516|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dagexp|  楼主 | 2016-12-5 17:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
linux设备驱动开发中,操作IO的步骤是:申请空间request_mem_region;
                                                      映射 IOremap();
                                                      操作硬件ioread32();iowrite32();
                                                      取消映射iounmap();
                                                      释放空间 release_mem_region();
在将物理地址映射为虚拟地址之前最好先申请下内存资源,检查是否可以安全占用该物理地址,譬如我用GPIOB端口,然后我就对这个端口物理地址申请占有,但是我一般一个设备驱动里面可能只会用这个端口的某几个IO口,那我占有了这个端口的物理地址,别的驱动模块想用GPIOB端口的其他IO 口怎么办,不是用不了了吗?

相关帖子

沙发
john_lee| | 2016-12-5 21:32 | 只看该作者
驱动就一个,其它想用GPIOB的模块(不要做成驱动)调用这个驱动就行了。

使用特权

评论回复
板凳
dagexp|  楼主 | 2016-12-6 09:20 | 只看该作者
john_lee 发表于 2016-12-5 21:32
驱动就一个,其它想用GPIOB的模块(不要做成驱动)调用这个驱动就行了。

就是其他模块直接使用这个映射过的虚拟地址?

使用特权

评论回复
地板
john_lee| | 2016-12-6 10:30 | 只看该作者
驱动提供 ioctl 功能调用,其它模块是用户进程,调用这个 ioctl 就行了。

使用特权

评论回复
5
dagexp|  楼主 | 2016-12-7 09:09 | 只看该作者
谢谢,知道了,我以为每个驱动模块都单独申请个资源

使用特权

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

本版积分规则

7

主题

85

帖子

1

粉丝