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
审核编辑:汤梓红
标签:
为您推荐
广告
随机阅读
- Linux LED子系统详解|天天要闻
- 当前观察:高考生中午睡过头,热心外卖小哥及时将其送到考场
- 微笑小香香在哪里看(微笑小香香)_天天要闻
- 刘亚仁涉嫌使用毒品种类追加, 新发现2种一共七种-当前视点
- 德云社违反卫生管理, 未取得卫生许可证被罚3万 视焦点讯
- 环球热点评!社区多元化多角度全方位服务新业态新就业群体
- 20家入围餐饮企业决出“十大名店” 厦门“名厨名菜名店”全部评出|世界微动态
- 2023年第三期和第四期储蓄国债(电子式)今日发行 五年期票面利率3.07%
- 当前视讯!李小璐身后,那些进入她世界里的人,只不过都是过客而已
- 1599元买到演唱会“柱子票” 体验大打折扣代价谁承担?
- 全球今日讯!吉愿罐、定胜糕、考神咖……快消企业“高考”营销寻增量
- 世界讯息:曹廷隐(关于曹廷隐介绍)
- 天天热门:公司要求员工分摊电费?法院判了
- 世界视点!金手链怎么洗(金手链怎么洗才能变亮)
- 世界速看:hd什么意思手机上怎样去除(hd什么意思)
- 历时100天,180余项活动陆续开展,长春消夏艺术节盛大启幕
- 焦点精选!瑞银与瑞士政府签署损失保护协议
- 全球视讯!太惊奇!浙江女子身体里取出“花”!老公打算做成钻戒或饰品
- 空难40天后,机上4名儿童在丛林被发现幸存,最小的只有11个月大
- 万贯是多少钱
- 1定了!皇马第二签锁定中场万金油,德国国脚登陆伯纳乌倒计时 当前讯息
- 2云南省梁河县发布暴雨蓝色预警|焦点热文
- 3独立显卡10年来最惨!AMD再不努力 Intel就追上了
- 4广汽埃安副总经理:原来车厂不是为电池厂打工,而是为材料厂打工且还是打长工_环球热点
- 5隔夜要闻:美股收高中概股普涨 对冲基金增持原油多头头寸 美国商业团体就药价控制权问题起诉美国政府
- 6香港都会大学创业产业与文化资产文学硕士申请-天天看热讯
- 7交大昂立: 关于收到上海证券交易所《关于公司年度股东大会相关事项的监管工作函》的公告
- 8世界球精选!想开一家美容机构,加盟美丽田园怎么样?
- 9明明是唐三的亲闺女,为何唐舞桐最终只是个二级神祇?她有机会加强吗? 视点
- 10焦点速递!暗柱接头位置规范_暗柱
广告
财经
- 全球最新:四库全书分为哪四部(四库全书简介)
- 世界微动态丨开创电气:网上发行中签率为0.0192940279%
- 全球要闻:上海两男子往车窗塞露骨小卡片被刑事拘留,警方:他们与诈骗分子勾结
- 辽宁医药什么专业好就职技术学院-全球今头条
- 中考落榜怎么办?考不上高中有哪些出路
- 热门:电子元器件怎么找客户电话(电子元器件怎么找客户)
- 洛亚蒂群岛发生5.7级地震 震源深度50千米
- 热议:3连板时空科技:公司未开展热点题材涉及的“空间计算”业务及技术研发 暂不具备相应储备
- 前沿资讯!郑州市城市管理执法支队开展高考服务保障工作
- 金融街物业公布2022财年年度权益分配方案
- 石榴籽的作用与功效_石榴籽有什么作用 微动态
- 海得控制:拟以12.78亿元收购行芝达75%股权
- 世界快报:洛阳公布78个受损小麦收购点、收购价格
- A股 任重道远.也许来日方长-最新快讯
- 环球快资讯丨掩饰、隐瞒犯罪所得 一男子因“代购”被三亚警方刑拘
- 每日视点!属牛的2020年运势如何 属牛2020年运势及运程每月运程大家找算命网
- 环球快报:国家药监局批准伏罗尼布片上市
- 全球快报:2、裤裙的基本版型——不懂得看过来‼️
- 2023年大亚湾新建公办学校招生地址+招生点
- 环球报道:科大国创(300520):该股换手率大于8%(06-08)