linux 申请内存空间request_mem_region的问题
linux设备驱动开发中,操作IO的步骤是:申请空间request_mem_region;映射 IOremap();
操作硬件ioread32();iowrite32();
取消映射iounmap();
释放空间 release_mem_region();
在将物理地址映射为虚拟地址之前最好先申请下内存资源,检查是否可以安全占用该物理地址,譬如我用GPIOB端口,然后我就对这个端口物理地址申请占有,但是我一般一个设备驱动里面可能只会用这个端口的某几个IO口,那我占有了这个端口的物理地址,别的驱动模块想用GPIOB端口的其他IO 口怎么办,不是用不了了吗? 驱动就一个,其它想用GPIOB的模块(不要做成驱动)调用这个驱动就行了。 john_lee 发表于 2016-12-5 21:32
驱动就一个,其它想用GPIOB的模块(不要做成驱动)调用这个驱动就行了。
就是其他模块直接使用这个映射过的虚拟地址? 驱动提供 ioctl 功能调用,其它模块是用户进程,调用这个 ioctl 就行了。 谢谢,知道了,我以为每个驱动模块都单独申请个资源
页:
[1]