【世界时快讯】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子系统详解
- 低价团乱象再起 何以无解?
- 逐浪AIGC丨OpenAI CEO最新演讲:AGI可从根本上改变人类文明,这凸显了国际合作必要性 世界热讯
- 饮酒配什么蔬菜好吃?
- 高腰紧身牛仔裤,时髦又百搭,搭配黑色吊带,显得身姿曼妙
- 环球即时:商用四年,中国5G走向“无人区”
- 爱国诗篇古诗
- 全球今头条!鸿富瀚(301086)报收于70.09元,下跌3.39%
- 环球时讯:搜救犬被确诊淋巴瘤晚期,主人带它最后一次出门,小镇居民集体出动陪它散步向它告别
- 冲狗 甲戌 煞南_冲狗煞南是什么意思
- 金山云美股涨7.72%
- 当前聚焦:昔日荒山变为幸福“金山” 桃园变成农民增收“致富园”
- 天天要闻:C视频丨四川这4个项目,谁最有可能冲刺世界文化遗产?丨文化和自然遗产日
- 文化IP智能应用让历史文化“活”起来
- 天天热头条丨西安有情天聊天室登录_西安有情天聊天室
- 久事美术馆“传统文化在当代”展览季启幕 应届高考生可免费观展
- 饮酒配什么蔬菜好吃?
- 【共同缔造安全江夏⑭】摄影作品:电力阶梯 当前快播
- 天天报道:邮差马龙外号由来(邮差马龙)
- 隐形牙套品牌(隐形牙)-今日热闻
- 1快看点丨黄鼬侠(黄鼬)
- 2“深海发现之旅”在国家海洋博物馆启动 微资讯
- 3提醒注意用电安全的文案,用电安全温馨提示标语怎么写
- 4苏宁易购南区启动618省钱风暴 助推释放年中消费潜力
- 5【夏收现场】 知识落“地”助丰收 耕地质量提升示范田小麦增产53.6% 全球通讯
- 6狂犬病的早期症状(狂犬病的前兆) 世界播报
- 7【环球时快讯】南通非遗购物节开市 具有本土特色的近百个摊位亮相
- 8学制苗族银饰 传承非遗之美
- 9我的世界豪华别墅怎么做(我的世界豪华别墅怎么做厨房)
- 10姚译添,你对得起Angelababy吗?你对得起范丞丞吗? 环球视讯
- 1环球信息:时间飞船主题曲叫什么_时间飞船主题曲
- 2全球今日讯!古力娜扎晒时尚大片,凌乱秀发挡不住盛世美颜,秀窈窕身材超撩人
- 3一个月的婴儿受到惊吓怎么办_婴儿受到惊吓怎么办|天天资讯
- 4环卫母亲与高考儿子相拥而泣刷屏,普通人改变命运的努力打动人心
- 5力挺!小波特低迷场均7分 马龙:他不会掉出轮换 绝不质疑他
- 6高质量发展调研行 | 在智慧港口见证大湾区经济活力——广州南沙港走访一线见闻
- 7网络大V写色情小说长达10年!小学生付费阅读,家长报警!
- 8VR穿越古今 文旅IP出圈——文化赋能为旅游消费市场高质量发展开启新引擎|今日热文
- 9天天热消息:美国总统大选激烈角逐,AI开始参战,首个攻击对象竟是特朗普
- 10天天要闻:今年前五个月 宝鸡市新增就业2.8万人
广告
财经
- 讯息:加拿大野火肆虐影响美国 野火频发已成全球性问题
- 铁钳剪碎瓷,也能剪出“厝顶好戏”!
- 辽宁省内一日游去哪_辽宁省一日游攻略
- 如何理解笛卡尔我思故我在(笛卡尔我思故我在)
- 北新建材与中国电建地产开展座谈交流 今日热闻
- 微软被罚!
- 全球快消息!《污泥人生2》Steam试玩版推出 6月27日正式发售
- 聚和材料(688503.SH):相关股东延长股份锁定期
- 剧本已完成,消息称“死侍”将主演苹果电影《Mayday》
- 高考结束张桂梅老师再次躲了起来
- 河粉要泡多久 河粉用什么水泡开 世界报道
- 新能源汽车观察:为何销量向上,股价向下?|全球播资讯
- 新版绝代双骄苏樱会死吗_新绝代双骄苏樱结局是什么_全球即时
- 汽车整车板块开盘活跃
- 如何做馒头发酵快一点(如何做馒头发酵快)_焦点简讯
- 招标文件条目号是什么意思举例_招标文件条目号是什么意思 世界快资讯
- 瑜伽服10大品牌logo(瑜伽服10大品牌)|全球快播
- 天天播报:青岛节能挑战赛落幕!一汽奔腾NAT实测满电续航超400km
- 全球热资讯!2300多人涉刑事,啥罪?
- 今日热议:暗黑破坏神2完整攻略(暗黑破坏神2攻略大全)