今亮点!Linux LED子系统详解
发布时间:2023-06-11 10:37:20 文章来源:jf_30051736
LinuxLED子系统详解


(相关资料图)

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

审核编辑:汤梓红

关键词:

最近更新

热门推荐HOT

  • 以技术和实力支持巴哈大赛 东风商用车助力汽车产业蓬勃发展
    以技术和实力支持巴哈大赛 东风

    近日,第七届中国汽车工程学会巴哈大赛(简称巴哈大赛)在湖北襄阳落下帷幕。该项赛事是继中国大学生方程式汽车大赛(FSC)成功举办之后,中国

  • “整车+后市场”一体化解决方案,东风商用车以可靠推动“疆煤外运”
    “整车+后市场”一体化解决方案

    近年来,受国际能源价格大幅上涨影响,发挥压舱石作用的新疆煤炭抓住契机,融入到全国统一大市场,有效缓解了国内能源供应偏紧形势。随之而

  • 一切源于可靠 东风商用车潜心客户价值,赋能行业向上
    一切源于可靠 东风商用车潜心客

    近日,备受瞩目的东风天龙GX上市发布会暨东风天龙中国卡车驾驶员大赛(第6季)暨东风阳光杯(第2届)全国商用车维修技能竞赛总决赛在车城十堰隆

  • 数字场景再创佳绩 东风商用车以数字化转型助力商用车行业高质量发展
    数字场景再创佳绩 东风商用车以

    随着科技进步,新一轮产业变革蓬勃兴起。数字化发展,是互联网时代向大数据时代、后数据时代的必由之路,抓住数字经济的发展新机遇,是实现

  • 中国梦·邮政情 东风商用车携手国家邮政局致敬最美快递员
    中国梦·邮政情 东风商用车携手

    5月19日,由国家邮政局、中华全国总工会指导,中国邮政快递报社主办的第五届中国梦·邮政情 寻找最美快递员活动揭晓发布会在北京国际会议

  • 2023款轻卡家族燃情上市 庆铃五十铃助力克拉玛依
    2023款轻卡家族燃情上市 庆铃五

    明月出天山,苍茫云海间。5月21日,耀世登场·擎铃未来庆铃五十铃2023款ELF轻卡家族在克拉玛依焕新上市。凭借智能、效能、全能的产品优势,

  • 百公里油耗27L,东风天龙GX全场景接力实测圆满收官
    百公里油耗27L,东风天龙GX全场

    2023年5月15日,国产高端重卡东风天龙GX全场景干线接力实测圆满收官。历时6天,途径成都-恩施-潜山-上海-武汉-十堰,全场景验证盆地、高原

  • 为了卡友“高兴而来” 东风天龙GX油耗飚低担国产高端重任
    为了卡友“高兴而来” 东风天龙

    5月10日,东风天龙GX成都-上海-十堰全场景干线实测拉开序幕,本次实测的重头戏,不仅在于东风天龙GX的全方位展示,更是围绕着百公里油耗的

  • 数字转型,勇摘桂冠!东风商用车荣获国资委首届国企数字创新场景专业赛一等奖
    数字转型,勇摘桂冠!东风商用车

    近日,由国家互联网信息办公室、国家发展和改革委员会、工业和信息化部、国务院国有资产监督管理委员会、福建省人民政府等共同主办的第六届

  • 签约百台东风天龙牵引车 东风商用车赋能危险品运输安全升级
    签约百台东风天龙牵引车 东风商

    5月11日,峰捷(湖北)供应链有限公司、东风商用车有限公司与荆门中泽汽车有限公司在湖北十堰共同签署了采购100台东风天龙牵引车的战略合作协

猜你喜欢LOVE