我相信我无法完全理解在嵌入式系统中为某些特定设备(例如 GPIO)编写设备驱动程序的好处,因为有替代方法可以完成相同的工作。
您可以通过 sysfs 和设备树访问 GPIO。
- 编写一个新的设备树覆盖并启用它
- 转到 /sys/class/gpio
- 导出所需的 pin 并开始使用它(通过简单的 shell 调用或在 c/c++ 应用程序中)
编写自己的驱动程序。
- 编码真正的功能。
- 将驱动程序公开给用户空间中的节点(如 /dev/tty)。
- 编写另一个 c/c++ 代码来访问驱动程序(也可以通过简单的 shell 调用来访问它)
- 如果您需要任何新功能,请先更改驱动程序,然后再更改代码。(为什么?)
直接使用/dev/mem;
- 包含 mman.h 并使用 /dev/mem 对象来设置或获取 GPIO 状态。
所以,
- 1 -> 将被弃用且缓慢。(好的,对快速原型制作绝对有益)
- 2 -> 比 1 快多少?第一个也是另一个 GPIO 驱动程序,不是吗?
- 3 - >这不是最好和最快的方法吗?
我在上面问了几个问题,但这是我最大的问题;为什么我不应该直接使用第三种解决方案?