基于字符设备的 GPIO 用户空间的新用法
从 linux 4.8 开始,不推荐使用 GPIO sysfs 接口。用户空间应该使用,而
是字符设备。这个库封装了 ioctl 调用和简单 API,新的字符设备接口保证所有
分配的资源在关闭设备文件描述符后得到释放,并添加了几个在过时的 sysfs
接口中不存在(如事件轮询,一次设置/读取多个值或开源和开漏 GPIO)的新
功能。
新的字符设备接口:
来自用户空间的 GPIO 处理变得类似于具有 ioctl,轮询和读取功能的其他
char 驱动程序,除了为 GPIO 分配数字之外,您还可以分配名称。API(在
linux / gpio.h 中)提供对芯片信息,行信息,值的行请求,读取值,设置值,
事件的行请求(上升/下降沿),事件轮询和读取事件的访问。
由于内核 API 使用起来有点复杂,因此还有一个名为 libgpiod 的 C 库,它
带有一些工具,如 gpiodetect,gpioinfo,gpioset,gpioget,gpiond 和
gpiomon。进一步的工作包括 C ++和 Python 绑定,以及 GPIO 守护进程和