在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux LED子系統詳解

jf_30051736 ? 來源:jf_30051736 ? 作者:jf_30051736 ? 2023-06-10 10:37 ? 次閱讀

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           uevent
    max_brightness  subsystem
    

    點亮led

    echo 1 > brightness
    

    熄滅led

    echo 0 > brightness
    


審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23712

    瀏覽量

    671004
  • 接口
    +關注

    關注

    33

    文章

    8949

    瀏覽量

    153209
  • Linux
    +關注

    關注

    87

    文章

    11465

    瀏覽量

    212805
  • 子系統
    +關注

    關注

    0

    文章

    115

    瀏覽量

    12676
  • RK3588
    +關注

    關注

    7

    文章

    403

    瀏覽量

    5571
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Linux下輸入子系統上報觸摸屏坐標

    ??在 Linux 中,輸入子系統是由輸入子系統設備驅動層、輸入子系統核心層(Input Core)和輸入子系統事件處理層(Event Ha
    的頭像 發表于 09-25 08:56 ?2901次閱讀
    <b class='flag-5'>Linux</b>下輸入<b class='flag-5'>子系統</b>上報觸摸屏坐標

    linux--LED子系統一文讀懂

    Linux內核中,LED子系統扮演著控制LED燈的核心角色,它通過一套規范化的驅動架構,簡化了LED驅動程序的開發流程,讓開發者能夠更專注
    的頭像 發表于 08-02 16:09 ?3208次閱讀
    <b class='flag-5'>linux--LED</b><b class='flag-5'>子系統</b>一文讀懂

    Linux系統命令及其使用詳解

    Linux系統命令及其使用詳解
    發表于 08-20 13:38

    linux輸入子系統詳解

    :Linux的輸入子系統詳解instruction: 配合linux—2.6.22.6內核date: 2014-8-14
    發表于 08-14 16:59

    如何使用Linux內核中的input子系統

    的 input 子系統下提供的 API 函數接口,完成設備的注冊即可。在本章節中我們來學習一下如何使用 Linux內核中的 input 子系統
    發表于 12-29 07:20

    介紹下input子系統

    文章目錄前言input子系統按鍵檢測C代碼微信公眾號前言這是前3篇:嵌入式Linux i.MX開發板嵌入式Linux NFS嵌入式Linux 交叉編譯工具鏈嵌入式
    發表于 11-04 08:14

    基于Linux內核輸入子系統的驅動研究

    Linux因其完全開放的特性和穩定優良的性能深受歡迎,當推出了內核輸入子系統后,更方便了嵌入式領域的驅動開放。介紹了Linux的設備驅動基礎,詳細闡述了基于Linux內核輸入
    發表于 09-12 16:38 ?23次下載

    Linux設備驅動開發詳解》第5章、Linux文件系統與設備文件系統

    Linux設備驅動開發詳解》第5章、Linux文件系統與設備文件系統
    發表于 10-27 14:13 ?0次下載
    《<b class='flag-5'>Linux</b>設備驅動開發<b class='flag-5'>詳解</b>》第5章、<b class='flag-5'>Linux</b>文件<b class='flag-5'>系統</b>與設備文件<b class='flag-5'>系統</b>

    Linux內核輸入子系統的驅動研究

    Linux內核輸入子系統的驅動研究
    發表于 10-31 14:41 ?14次下載
    <b class='flag-5'>Linux</b>內核輸入<b class='flag-5'>子系統</b>的驅動研究

    詳細了解Linux設備模型中的input子系統

    linux輸入子系統linux input subsystem)從上到下由三層實現,分別為:輸入子系統事件處理層(EventHandler)、輸入
    發表于 05-12 09:04 ?1143次閱讀
    詳細了解<b class='flag-5'>Linux</b>設備模型中的input<b class='flag-5'>子系統</b>

    Windows 子系統助力 Linux 2.0

    Windows 子系統助力 Linux 2.0
    的頭像 發表于 01-04 11:17 ?844次閱讀

    Linux Led子系統代碼框架分析

    代碼框架分析 led-class.c (led 子系統框架的入口) 維護 LED 子系統的所有 LED
    的頭像 發表于 07-20 10:36 ?1027次閱讀

    Linux內核之LED子系統(一)

    Linux內核的LED子系統是一種重要的框架,用于管理和控制設備上的LED指示燈。在嵌入式系統和物聯網設備中,
    發表于 10-02 16:53 ?1697次閱讀
    <b class='flag-5'>Linux</b>內核之<b class='flag-5'>LED</b><b class='flag-5'>子系統</b>(一)

    Linux內核之LED子系統(二)

    這里說一說LED子系統的一些核心源代碼文件,是如何實現LED子系統
    發表于 10-02 16:55 ?1424次閱讀
    <b class='flag-5'>Linux</b>內核之<b class='flag-5'>LED</b><b class='flag-5'>子系統</b>(二)

    Linux clock子系統是什么

    clock子系統 Linux的時鐘子系統由CCF(common clock framework)框架管理, CCF向上給用戶提供了通用的時鐘接口,向下給驅動開發者提供硬件操作的接口 。各結構體關系
    的頭像 發表于 09-27 14:25 ?1074次閱讀
    <b class='flag-5'>Linux</b> clock<b class='flag-5'>子系統</b>是什么
    主站蜘蛛池模板: 在线观看免费观看 | 5g影院天天爽 | 性试验k8经典 | 婷婷激情在线 | 五月开心六月伊人色婷婷 | 宅男69免费永久网站 | 激情理论| 国产综合免费视频 | 三级色网站 | 成人a毛片免费全部播放 | 成年看片免费高清观看 | 天堂在线最新版www中文 | 免费 在线观看 视频 | 高清成年美女xx免费网站黄 | 五月激情六月婷婷 | 国产大毛片 | 永久免费精品影视网站 | 国产精品免费视频拍拍拍 | 亚洲色图日韩 | 国产黄色大片又色又爽 | 免费 视频 | 免费一级特黄3大片视频 | 亚洲精品国产美女在线观看 | 人人干人人爽 | 视频在线h| 欧美一级视频高清片 | 一级视频在线观看 | 天天都色 | 欧美精品成人a多人在线观看 | 欧美一级爱操视频 | 国产精品单位女同事在线 | 天天舔夜夜操 | 另类性欧美喷潮videofree | 手机看片免费永久在线观看 | 三a大片| 这里只有精品视频 | 国产欧美一区二区三区观看 | 亚洲不卡免费视频 | 国模私拍大尺度视频在线播放 | 很黄很色网站 | 男人天堂伊人 |