我写一个司机D1,将调用request_mem_region()和ioremap的(),和一个驱动器D2,将调用的ioremap()具有相同的地址。
在这种情况下会发生什么?分割地图调用两台Linux设备驱动程序
0
A
回答
0
这两个驱动程序都能按预期工作,但建议在ioremap()之前使用request_mem_region()以避免其他驱动程序写入该物理内存区域。
request_mem_region告诉你的驱动程序将使用此范围内的I/O地址,这将妨碍其它驱动程序,使通过request_mem_region任何重叠调用同一区域的内核。
这种机制不会做任何类型的映射,它是一种纯粹的保留机制,它依赖于所有内核设备驱动程序都必须很好的事实,并且它们必须调用request_mem_region,检查返回值,并在出现问题时正常运行的错误。
因此,您的代码在没有request_mem_region()的情况下工作是完全合乎逻辑的。
相关问题
- 1. Linux设备驱动程序
- 2. 平台设备/驱动程序vs i2c设备/驱动程序
- 3. Linux设备驱动程序,程序启动的地方?
- 4. Linux i2c-设备驱动程序module_i2c_driver()
- 5. IOCTL Linux设备驱动程序
- 6. Linux网络设备驱动程序
- 7. 设备驱动程序在linux中
- 8. 简单的linux设备驱动程序打开调用崩溃
- 9. Linux的字符设备驱动程序:阻塞ioctl调用
- 10. GDB用于调试Linux设备驱动程序
- 11. 如何使用android/linux电源驱动程序注册设备驱动程序?
- 12. 如何调试PCI设备和Linux驱动程序
- 13. 将虚拟PCI设备与linux设备驱动程序接口
- 14. 创建设备文件:Linux设备驱动程序
- 15. Linux设备驱动程序字符设备“子目录”
- 16. Linux设备驱动程序主号码分配
- 17. Linux的:如何USB驱动程序分配到设备
- 18. Linux设备驱动程序 - 线程化IRQ处理程序
- 19. 图书馆的设备驱动程序
- 20. Linux设备驱动程序的最简单驱动程序新手
- 21. Linux设备驱动程序:将标志传递给驱动程序
- 22. Wince设备驱动程序
- 23. Windows设备驱动程序
- 24. scull设备驱动程序
- 25. 关于Linux设备驱动
- 26. 在Linux设备驱动程序的简单程序
- 27. 如何启动linux系统和设备驱动程序编程
- 28. 程序如何查找和调用设备驱动程序?
- 29. 编写设备驱动程序时,linux中__iomem有什么用?
- 30. linux设备驱动程序库不可用
*“在这种情况下会发生什么?”* - 您将有意识地编写不符合内核约定的驱动程序。否则系统可能会按预期运行。这是糟糕的代码组织;代码的作品,但那些不得不维护它的人受苦。 – sawdust