环球速讯:Linux LED子系统详解
2023-06-10 17:36:55 来源:jf_30051736
(资料图)
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
审核编辑:汤梓红
关键词:
相关阅读
- (2023-06-10)环球速讯:Linux LED子系统详解
- (2023-06-10)“分裂”声子显现量子特性
- (2023-06-10)广西启动2023年普通高校毕业生就业百日攻坚行动
- (2023-06-10)国米这巨星欧冠或当替补!出场144分钟进3球+1助攻,成决赛变数 全球播报
- (2023-06-10)法网女双历史性一刻!王欣瑜/谢淑薇进决赛,海峡组合冲冠有意义-焦点
- (2023-06-10)世界关注:个人所得税查询有两家公司给我发工资总金额超过5000了需要交
热点推荐
- (2023-06-10)环球速讯:Linux LED子系统详解
- (2023-06-10)当前信息:《天空之城》:用纯真对抗贪婪
- (2023-06-10)世界新资讯:暖心助考
- (2023-06-10)“分裂”声子显现量子特性
- (2023-06-10)今日播报!阿维塔将开启ADS高阶功能包订阅 每月640元
- (2023-06-10)恭喜!香港知名女星宣布二胎产子,富豪丈夫抱着儿子像抱着孙子 环球百事通
最近更新
- (2023-06-10)环球速讯:Linux LED子系统详解
- (2023-06-10)当前信息:《天空之城》:用纯真对抗贪婪
- (2023-06-10)世界新资讯:暖心助考
- (2023-06-10)“分裂”声子显现量子特性
- (2023-06-10)今日播报!阿维塔将开启ADS高阶功能包订阅 每月640元
- (2023-06-10)恭喜!香港知名女星宣布二胎产子,富豪丈夫抱着儿子像抱着孙子 环球百事通
- (2023-06-10)广西启动2023年普通高校毕业生就业百日攻坚行动
- (2023-06-10)世界最新:高校食堂“鼠头鸭脖事件”背后:10万能拿下一个档口?
- (2023-06-10)高中生与大学生记者,曝光男子为找回80回后曹雪芹文笔,蜗居8平米23年
- (2023-06-10)国米这巨星欧冠或当替补!出场144分钟进3球+1助攻,成决赛变数 全球播报
- (2023-06-10)奈飞(NFLX.US)在美国打击账号共享后用户激增 周五收涨2.6%_天天热头条
- (2023-06-10)当兵有什么好处和福利政策_当兵有什么好处 视点
- (2023-06-10)当前讯息:各地税务部门不断优化服务 前5个月新办涉税经营主体643.5万户
- (2023-06-10)法网女双历史性一刻!王欣瑜/谢淑薇进决赛,海峡组合冲冠有意义-焦点
- (2023-06-10)热点!广西养老金调整在即~2022-2023广西养老金上调方案细则最新消息
- (2023-06-10)画师紺屋鴉江的美图合集
- (2023-06-10)世界关注:个人所得税查询有两家公司给我发工资总金额超过5000了需要交
- (2023-06-10)车间探秘!怎样做到53秒下线一台车?| 高质量发展调研行・广东站
- (2023-06-10)新闻1+1丨升级后的“村BA”,“村味”如何延续?
- (2023-06-10)从南宁来到厦门 两件南侨机工文物落户陈嘉庚纪念馆
- (2023-06-10)当前焦点!2023中国青梅酒西湖峰会举办
- (2023-06-10)环球新资讯:《底特律》发行商公布独立品牌:三款游戏待发售
- (2023-06-10)强者恒强,江铃福特全顺何以持续领跑轻客市场?
- (2023-06-10)今日关注:四川阿坝州茂县发生3.2级地震
- (2023-06-10)从8000年前的刻符龟甲说起 成博新展用220件重磅文物解读“汉字中国”|文化和自然遗产日|通讯
- (2023-06-10)Kitco调查:美联储这一信号或助黄金大涨20美元!下周鲍威尔会放鹰吗?
- (2023-06-10)每日动态!破“难点”通“堵点” 我国金融服务科技创新走上“快车道”
- (2023-06-10)观察:海南自贸港建设取得一批阶段性成果 经济外向度显著提升
- (2023-06-10)深圳文化产权交易所发布版权认证平台
- (2023-06-10)热消息:世界“灯塔工厂”引领!宜宾动力电池产业链零碳智能“超级”进阶