dagexp 发表于 2016-12-5 17:17

linux 申请内存空间request_mem_region的问题

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

谢谢,知道了,我以为每个驱动模块都单独申请个资源
页: [1]
查看完整版本: linux 申请内存空间request_mem_region的问题