25、嵌入式设备驱动与模块开发指南

25、嵌入式设备驱动与模块开发指南

嵌入式设备驱动与模块开发指南

1. LED 控制

LED 通常可通过 GPIO 引脚进行控制,但内核子系统提供了更专业的控制方式。LED 内核子系统允许设置 LED 亮度(前提是 LED 支持该功能),并且能处理非简单 GPIO 引脚连接的 LED。它可以配置为在特定事件(如块设备访问或心跳信号)触发时点亮,以显示设备正在运行。

1.1 内核配置

要使用 LED 内核子系统,需在配置内核时启用CONFIG_LEDS_CLASS选项,并选择合适的 LED 触发动作。相关详细信息可在Documentation/leds/目录中查找,驱动程序则位于drivers/leds/目录。

1.2 通过 sysfs 控制 LED

和 GPIO 类似,LED 可通过/sys/class/leds目录下的接口进行控制。以 BeagleBone Black 为例,LED 名称在设备树中以devicename:colour:function的形式编码,如下所示:

# ls /sys/class/leds beaglebone:green:heartbeat beaglebone:green:usr2 beaglebone:green:mmc0 beaglebone:green:usr3

查看某个 LED 的属性时,需注意路径中的冒号: </