Beaglebone Black 运行 Debian,设备树覆盖是否充当 API?

Beaglebone Black 运行 Debian,设备树覆盖是否充当 API?

这可能更像是 Linux 特有的问题,但是......

我已经阅读了很多教程,似乎可以使用 JavaScript、Python 和 C++ 为 Beaglebone Black(BBB)编写代码。

看起来 C++ 与 BBB 硬件交互的方式是通过在操作系统上读取/写入文本文件,而 Python 有自己的库。

所有 C++ 示例都通过读取/写入文本文件来控制 GPIO 和 PWM。

这是访问硬件的唯一方法吗?还是说 Linux 只是访问驱动程序?

答案1

几乎所有司机都是这样做的。

当程序想要与驱动程序通信时,它需要一个通信通道。如果每个驱动程序都引入一个新的系统调用,那么维护起来几乎是不可能的,尤其是在接口发生变化、错误修复等情况下。

因此,驱动程序提供了一个伪文件,可以通过常规read/writeioctl调用进行访问,然后将其直接传递给驱动程序。

Python 库仅提供了围绕该接口的抽象。

相关内容