实时

您的位置:首页>资讯 >

每日消息!Linux LED子系统详解


(资料图)

1. 简介

专栏总目录Linux为了广泛通用性及适应性,各种框架都做得非常灵活而又复杂,小小的LED也不例外。支持了不 同的LED硬件设备,例如gpio接口,i2c接口,LED芯片等。为了支持各种点灯效果,使用了Trigger框架,除了系统默认的一些trigger外,用户可以创建自定义trigger。因此,为了点个灯,软件开发人员需要了解Linux中gpio, led, trigger三个模块。led框架核心文件:
/kernel/include/linux/leds.h    // 重要,led相关结构体,宏定义,trigger等目录 /kernel/driver/leds/ 下led-class.c  // 定义led class及相关接口led-core.c   // export 了闪烁,设置亮灭等接口led-gpio.c   // "leds-gpio" 驱动leds.h       // 提供几个接口,如:led_init_core
trigger 框架核心文件:
目录 /kernel/driver/leds/ 下    led-triggers.c    // export了许多接口,包括:led_trigger_register目录 /kernel/driver/leds/trigger 下    ledtrig-backlight.c    ledtrig-camera.c    ledtrig-cpu.c    ledtrig-default-on.c    ledtrig-disk.c    ledtrig-gpio.c    ledtrig-heartbeat.c   // 心跳灯效果    ledtrig-mtd.c    ledtrig-oneshot.c    ledtrig-panic.c    ledtrig-timer.c       // 定时器ledtrig-transient.c

以参考上面的trigger例子写自己的trigger,或者改造,需要在make menuconfig里面选上才会编译,如下:

2. LED 调试

2.1 调试总览,调试步骤分析

步骤 一 : dts配置步骤 二 :编译烧写,调试

2.2 调试过程

步骤 一 : dts配置① leds节点是在rk3588-evb.dtsi文件中定义

#include "rk3588-evb.dtsi"

② 定义四个led节点: (检查gpio是否被复用)

使用命令:dmesg | grep cannot检查是否有gpio冲突,有冲突的话驱动代码会中断,后面的dts就不会生效。

&leds {        status = "okay";        compatible = "gpio-leds";        pinctrl-names = "default";        pinctrl-0 = < &work1_led_gpio >, < &work2_led_gpio >,< &work3_led_gpio >,< &work4_led_gpio >;        work1_led: work1{            default-state = "off";            gpios = < &gpio4 RK_PD2 GPIO_ACTIVE_HIGH >;        };        work2_led: work2{            default-state = "off";                  gpios = < &gpio4 RK_PD3 GPIO_ACTIVE_HIGH >;        };        work3_led: work3{            default-state = "off";            gpios = < &gpio4 RK_PD4 GPIO_ACTIVE_HIGH >;        };        work4_led: work4{            default-state = "off";            gpios = < &gpio4 RK_PD5 GPIO_ACTIVE_HIGH >;        };};&pinctrl {    leds{            work1_led_gpio: work1-led-gpio{            rockchip,pins = < 4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_down >;            };            work2_led_gpio: work2-led-gpio{            rockchip,pins = < 4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_down >;            };            work3_led_gpio: work3-led-gpio{            rockchip,pins = < 4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down >;            };            work4_led_gpio: work4-led-gpio{            rockchip,pins = < 4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down >;            };        }; }

步骤二:调试,验证:在用户空间操作led

使用了驱动框架后可以不需要编写应用程序就可以测试led是否能正常被点亮与熄灭,这些都可以在sysfs文件系统中完成。在装载驱动后可以在/sys/class/leds/目录下看到对应的led设备目录,如本文中的work1(填充设备时的设备名字段)。

ls /sys/class/leds/work1

brightness      power           ueventmax_brightness  subsystem

点亮led

echo 1 > brightness

熄灭led

echo 0 > brightness

审核编辑:汤梓红

关键词:

推荐阅读
LinuxLED子系统详解

2023-06-11 20:28:25

1、不是很大,交规考试就是从模拟考试题库中抽取100道题来考,所以在真

2023-06-11 19:45:03

今天(10日)下午5时左右,江苏南通市城区、海门、如皋等多地出现了强

2023-06-11 19:20:14

眼下,岭南地区渐入龙舟赛季。珠江水网密布,孕育出各具地方特色的龙舟

2023-06-11 18:18:05

环比上期股东户数下降的有81只

2023-06-11 17:27:42

孙元浩,星环科技创始人、CEO。入选上海领军人才培养计划,获得上海市

2023-06-11 17:16:05

来为大家解答以上的问题。宽带怎么设置连接人数,怎么设置wifi连接人数

2023-06-11 16:26:15

↑点击查看视频美国《华尔街日报》7日报道,美国财政部将在4个月内发行

2023-06-11 16:11:25

特别观察丨这样一条街点亮一座“城”原标题:特别观察丨这样一条街点亮

2023-06-11 15:34:35

RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之屏参配置

2023-06-11 15:00:01

1、ui设计师是做什么的呢?ui设计师能做什么工作?首先说下什么是UI设

2023-06-11 14:01:50

1、释义:碧血:出自“血化为碧”这个典故血化为碧玉,后指为正义事业

2023-06-11 13:56:28

关于绵阳有什么土特产可以送礼的的内容,包含绵阳有什么特产可以带?黄

2023-06-11 13:51:08

河南麦收进入尾声,已收获小麦8402万亩央视新闻消息,据河南省农业农村

2023-06-11 12:46:58

资本离场,营收下滑,三只松鼠跌落神坛。作者|金诺编辑|鹤翔出品|零售

2023-06-11 12:12:05

夏侯渊兵败定军山后,为何连襟兄弟曹操都要批评他为白地将军, "打了一

2023-06-11 11:59:18

陕西一镇政府花370万建的民宿园,运营仅20余天即停业,园内民宿已被拆

2023-06-11 10:50:51

6月8日,住房和城乡建设部、财政部、中国人民银行联合发布《全国住房公

2023-06-11 10:07:16

在总结世界级商圈特征的基础上,《规划》提出构建三级商圈体系,在此前

2023-06-11 09:22:42

不止「文心一言」,消息称百度将推出全新AI对话软件「万话」6月9日消息

2023-06-11 08:21:22