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子系统详解 焦点热议LinuxLED子系统详解
-
白鹅潭万象城奠基开工 广州三大地标综合体两个已官宣6月9日,广州白鹅潭万象城举行奠基暨动工仪式,标志着广州首座万象城建
-
焦点资讯:伍咏薇美得太高调,玫红色连衣裙大秀曼妙身材,高挑时髦又有气场对于成熟女性来说,颜色的选择很重要,要看你想让自己散发出什么样的性
-
最新资讯:教师专业技能方面存在问题(教师专业技能)1、一、深钻学科特点,巩固专业技能综合学科是小学教师队伍中最具专业
-
聚焦世遗 | 多图集锦来啦!“文化和自然遗产日”主题宣传活动启动2023年6月10日,中国第七个“文化和自然遗产日”,以“多彩的地球多样
-
每日短讯:幻影辅助网页版_幻影辅助1、最犀利的当然是$pk3c$插件$,近身走位,麻痹刺杀,错位刺杀,过超速
-
5月出口同比下滑,司法部门向网暴“亮剑”丨一周热点回顾 全球今热点5月CPI同比上涨0 2%6月9日,国家统计局发布的数据显示,5月份全国居民
-
口腔材料app(口腔材料网) 天天微速讯1、搜齿科材料网进入地狗官方网站我觉得错仅供参考哈望采纳。本文就为
-
素人是什么意思在娱乐圈_素人是什么意思1、素人来自于日语,念shiroto,通常指非专业人士、业余爱好者、业余艺
-
【世界报资讯】第12届金交会开幕,现场签约总金额超3500亿元6月9日,以“汇聚金融新力量赋能高质量发展”为主题的第12届中国(广州
-
腾讯人工客服电话怎么转人工接听_腾讯人工服务电话怎么接入人工服务1、腾讯人工服务有电话客服和网页在线客服。2、电话客服直接在百度搜索
-
端午假期机票比“五一”便宜两成,你想好去哪玩了吗?由于避开了暑期旅游高峰,端午节前后的国内国际机票价格较高峰期都划算
-
1158万人!今年高校毕业生数量再创历史新高!找工作更难了...|环球热点评点击下方卡片,关注“CVer”公众号AI CV重磅干货,第一时间送达今天Amu
-
非营利组织账务处理完整版(非营利组织)1、我国的非营利(NGO)组织有:消费者权益保护协会、奥组委、中国残疾人
-
天天热头条丨加强“双业融合”,浦东推出系列医产融合创新项目为加强医疗事业与生物医药产业“双业融合”,推动院校、医院、企业在生
-
醉疯魔的书(醉疯魔)来为大家解答以上的问题。醉疯魔的书,醉疯魔这个很多人还不知道,现在
-
离职原因有哪些选项(离职原因有哪些) 世界速递1、内容简介:员工离职是企业的损失,尤其核心员工的离职。2、所以作为
-
环球通讯!年内定增募资排行榜:7家公司募资超百亿元139家公司实施定增
-
简讯:上午9点,球王来了!梅西抵达北京,第7次来中国,却无缘交手国足赛事主办方原本让阿根廷跟国足在北京的工人体育场交手,因没有得到中国
-
体制机制的区别 打比方(体制与机制的区别) 环球要闻1、体制与机制是较易混淆的一对词语。2、按照《辞海》的解释,“体制”
-
我市开展工会爱心托管工作交流活动 环球最资讯6月8日,市总工会组织各县(市、区)总工会分管女工工作负责人以及有意
-
高考圆满结束6月9日18时15分,在嘉鱼一中考场随着生物科目考完,考生奔跑出校门,亲
-
非遗融入生活 文化自信自强天津北方网讯:主题为非遗融入生活,文化自信自强的非遗展示展演活动,
-
五风十雨的典故_五风十雨1、发 音wǔfēngshíyǔ释 义五天刮一次风,十天下一场雨。2、形容
-
全民皆兵!掘金3-1夺冠在即,杜锋赛后解读,引用黄健翔名言NBA总决赛第四场结束争夺,掘金客场击败热火,在前两个主场1-1平之后,
-
环球视点!怎么回事的英文_怎么回事1、在日常生活中,很多人有这种感觉,早饭时突然感到恶心反胃,出现干
-
世界即时:蛹没移动能力,很容易被天敌吃掉,为何昆虫还进化出蛹这种形态呢但是蛹期也为昆虫提供了很多生存优势,如更好地适应不同的生存环境、节
-
环球头条:中国电科发布生成式人工智能大模型“小可”据中国电科消息,6月9日,中国电科旗下电科太极在京正式发布生成式人工
-
ad凯南出装厉害还是AP(ad凯南出装)来为大家解答以上的问题。ad凯南出装厉害还是AP,ad凯南出装这个很多人
-
动漫IP“雅皮兔” 携朋友亮相文博会-当前热闻深圳新闻网2023年6月10日讯(深圳特区报首席记者李丽)在大连甘井子区