[嵌入式linux] linux 申请内存空间request_mem_region的问题

[复制链接]
1801|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 就行了。
 楼主| dagexp 发表于 2016-12-7 09:09 | 显示全部楼层
谢谢,知道了,我以为每个驱动模块都单独申请个资源
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

85

帖子

1

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