(资料图)
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子系统详解
-
今热点:A股:市场放量拉升,静等下周大阳,以下几点值得重点关注!
今天的市场演绎的的怎么样?是不是我昨天说的有机会艳阳天的走势,可以
-
外公去蹲监狱 会对外孙女考编制有什么影响吗
外公去蹲监狱 会对外孙女考编制有什么影响吗
-
天天资讯:状态栏在右边怎么设置回来(状态栏)
来为大家解答以上问题,状态栏在右边怎么设置回来,状态栏很多人还不知
-
红酒配什么菜口感更好?
红酒的搭配是有讲究的。红葡萄酒适合与红肉类,或者是口味比较重的菜肴
-
播报:梅西抵达北京,开启第七次访华之旅!主办方:未安排梅西等球员参加任何公益或商业活动
24小时财经资讯平台,依托新锐财经日报《每日经济新闻》(NationalBusin
-
国家乡村振兴局开展农村厕所革命“提质年”
新华社北京6月9日电(记者侯雪静、郁琼源)国家乡村振兴局局长刘焕鑫9日
-
初中毕业能直接读大专?
初中毕业是否能直接读大专很多初中生毕业之后想要直接读大专,但是不知
-
《雪豹和她的朋友们》上影节展映火爆 50秒售罄,暑期档上映-关注
第二十五届上海国际电影节正式开票,观众们观影热情高涨,多部影片一秒
-
梅西效应!迈阿密国际2天内涨粉600万,超过迈阿密热火粉丝数-全球时快讯
直播吧6月10日讯梅西加盟迈阿密国际。截至发稿时,迈阿密国际2天时间涨
-
13只创业板股最新股东户数降逾5%
环比上期股东户数下降的有81只
-
赶紧转给爸妈!陕西警方紧急预警!
点击上方“陕西新闻广播”,关注我们哦!安康两地警方发布紧急预警▼近
-
天天新消息丨浏阳书院新村:推进乡村路域环境整治 助力人居环境提质升级
近日,浏阳书院新村组织党员志愿者、村民代表开展路域环境提质改造升级
-
时讯:亚裔考生"美国高考"近满分,却被六大名校拒绝
据福克斯新闻网当地时间6月8日报道,在“美国高考”的SAT考试中,佛罗
-
首台套50万千瓦冲击式水电机组项目开工 焦点快播
9日,大唐西藏扎拉水电站主体工程正式开工建设,项目配备首台套50万千
-
【当前热闻】“618”销售数据透露消费升级趋势 大单涌入四行业120只个股
“618”是中国电商平台的年中促销活动,每年的“618”大促对消费者来说
-
《这样的你》上线,张静初现场分享对“美”的理解
大象新闻·东方今报首席记者吴净净女性都市情感观察节目《这样的你》,
-
周美云任中国石化资本董事长、党委书记
6月6日,中国石油化工集团有限公司党组宣布周美云同志为中国石化集团资
-
魔王幸存者什么时候出 公测上线时间预告_独家焦点
导读:最近很多玩家都在关注魔王幸存者这款手游,想知道具体的公测时间
-
广西高考首次使用人脸识别技术,考生预计6月24日可查成绩-头条焦点
中国教育报讯(记者周仕敏通讯员杨金娇)6月8日17时,随着外语科目考试