色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

RT-Thread驅動開發指南進階篇-動手驅動先楫未適配的外設LCD

RTThread物聯網操作系統 ? 來源:RCSN嵌入式 ? 2024-02-25 11:04 ? 次閱讀

一、概述

經過上一篇的《《RT-Thread設備驅動開發指南》基礎篇--以先楫bsp的hwtimer設備為例》闡述,可以大致了解到RT-thread設備驅動開發的方法步驟,開發指南中的進階篇外設主要是比基礎篇外設復雜點的外設設備,分別是SDIO、Touch、LCD、sensor、MTD nor、MTD nand、脈沖編碼器、加解密設備、PM設備。

對于進階篇的外設,本文不對先楫已經支持的進階外設進行闡述,而是進行一次動手實踐驅動一個先楫尚未適配的驅動外設-LCD,來更加深入開發RT-thread的設備驅動。

來個效果:

在官方示例的wifi_web_camera_demo基礎上加上lcd驅動顯示攝像頭

二、開發方法

(一)RT-thread的LCD驅動框架介紹

LCD驅動,跟其他外設也類似,無非就是IO設備管理框架-->LCD設備驅動框架->LCD設備驅動。

IO設備管理層主要為設備框架提供統一的操作接口,包括rt_device_read/write/open/close/control等。而做好一個外設驅動,最終的目標就是應用上使用這些統一操作接口,無需理會底層操作。

LCD設備驅動框架層是RT-thread對LCD基本功能的抽象,是一層通用的軟件層,和硬件平臺無關,抽象了LCD設備的類型定義和具體的操作方法,其框架源碼在rtdef.h中

LCD的信息結構 rt_device_graphic_info,定義了像素格式,位寬,寬高、顯存地址等。

50354092-d249-11ee-a297-92fbcf53809c.png

LCD的操作接口rt_device_graphic_ops,定義了LCD的繪圖操作,比如像素點、畫線等操作。

503e984a-d249-11ee-a297-92fbcf53809c.png

LCD的控制命令,比如更新顯存、開關LCD、獲取信息、等待VSYNC等。

504245a8-d249-11ee-a297-92fbcf53809c.png

LCD的像素格式

50471f42-d249-11ee-a297-92fbcf53809c.png

可見,RT-thread對于LCD的抽象操作還是比較直觀,完成以上的操作,再借助IO設備管理層提供的注冊接口rt_device_register進行注冊,即可使用IO設備管理接口操作LCD。

(二)先楫LCDC外設介紹

對于先楫的LCDC外設硬件控制器

在HPM6750上有RGB控制器,支持24位的RGB顯示接口

505e554a-d249-11ee-a297-92fbcf53809c.png

在HPM6800上,支持2 個 4 Lane MIPI-DSI/LVDS-Tx 顯示接口

5074e706-d249-11ee-a297-92fbcf53809c.png

對于在RT-thread上,也支持了hpm_sdk的panel組件,涵蓋了hpm6750和hpm6800的顯示適配。

508d7ac8-d249-11ee-a297-92fbcf53809c.png

對于hpm_sdk的panel組件介紹,可以參考文章《[hpm_application]選先楫!爽跑1080P or 720Pmipi屏的單片機

對于使用LCD硬件控制器(RGB,MIPI DSI)通信的屏幕,LCD設備驅動只需要實現LCD設備的操作方法struct rt_device_ops即可,比如control接口里更新硬件控制器的緩存區即可控制屏幕繪圖。

如此一來,配合先楫適配好的RT-thread BSP,可以很順手得適配好LCD的驅動,按先楫BSP的driver照葫蘆畫瓢個drv_lcd。

50a4b35a-d249-11ee-a297-92fbcf53809c.png

(三)創建LCD設備

下面來創建先楫的LCD設備。LCD設備模型從struct rt_device結構體中派生,并添加自己的私有數據。

成員主要有LCD的基地址,中斷號,互斥鎖,LCD名稱等。

50b981ae-d249-11ee-a297-92fbcf53809c.png

實例化一個lcd的設備數組,可以存在多個lcd設備,里面包含設備的初始化參數

50d0a0dc-d249-11ee-a297-92fbcf53809c.png

(四)實現LCD設備的操作方法

按照以上的定義,已經實例化了一個hpm_lcd_ops結構體,然后需要實現對應的操作函數,也就是LCD設備定義操作方法。對于LCD設備來說,只有其中的init和control操作方法才有意義,而本文實現的也是這兩個接口,分別是hpm_lcd_init、hpm_lcd_control。

1、init:初始化LCD設備

對于該操作方法,先楫的LCD驅動代碼不需要執行任何操作,只需要在注冊初始化LCD即可。

50d469ec-d249-11ee-a297-92fbcf53809c.png

2、control:控制LCD設備

應用程序也可以對LCD設備進行控制,通過control方法完成。原型如下:

50ed2a40-d249-11ee-a297-92fbcf53809c.png

其中參數cmd包含了控制LCD的方式,通用設備命令可取以下宏定義:

50f4fc34-d249-11ee-a297-92fbcf53809c.png

當然在最新rtthread 5.0.2當中也更新了幾個命令

50f8a82a-d249-11ee-a297-92fbcf53809c.png

本文在這里主要實現以下幾個命令

(1)RTGRAPHIC_CTRL_RECT_UPDATE 更新顯存

對于顯存的更新,可以使用控制器自身定義的顯存也可以使用傳入的顯存地址,在先楫的手冊中有提到影子寄存器加載使能功能,也就是顯存會在下一個VSYNC到達加載,這樣可以做到顯示的完整更新。

51019f34-d249-11ee-a297-92fbcf53809c.png

而在hpmicro的驅動中也提供了該API:lcdc_layer_set_next_buffer,這里適配的驅動使用第一層layer。

故可以下實現:

51132a2e-d249-11ee-a297-92fbcf53809c.png

(2)RTGRAPHIC_CTRL_WAIT_VSYNC 等待幀完成

為了保證傳輸的高效和防撕裂,這里使用中斷方式傳輸一幀,再下一幀更新之前等待VSYNC完畢。

512a9cf4-d249-11ee-a297-92fbcf53809c.png

(3)RTGRAPHIC_CTRL_GET_INFO 獲取LCD信息

主要獲取LCD的像素格式、寬高等,傳遞給args參數

512f54e2-d249-11ee-a297-92fbcf53809c.png

(4)RTGRAPHIC_CTRL_POWERON亮屏

RTGRAPHIC_CTRL_POWEROFF 息屏

調用hpm_sdk的panel組件接口即可。

51580b44-d249-11ee-a297-92fbcf53809c.png

(五)注冊LCD設備

使用IO設備框架的rt_device_register完成注冊,主要關注設備操作方法的賦值部分,以及保存lcd設備示例賦值給lcd的user_data成員。

515c18ba-d249-11ee-a297-92fbcf53809c.png

(六)驅動配置

在board的Kconfig中使能LCD,該宏控制LCD驅動相關代碼是否添加到工程中

5160178a-d249-11ee-a297-92fbcf53809c.png

另外添加panel組件,該宏先楫已經實現,這里使用的是hpm6750,故只有RGB接口。

516d6476-d249-11ee-a297-92fbcf53809c.png

在驅動drivers的SConscript文件添加LCD驅動的判斷選項,如果使能,drv_lcd.c則會被添加到工程中。

518bedba-d249-11ee-a297-92fbcf53809c.png

(七)驅動驗證

注冊設備之后,LCD設備將會在IO設備管理器中出現,我們使用hpm6750evkmini的wifi_web_camera_demo這個官方示例作為驗證,燒錄驗證,使用list device命令查看到注冊的設備已經包含了LCD設備。

519bbac4-d249-11ee-a297-92fbcf53809c.png

在wifi_web_camera_demo的示例上,在獲取camera圖像的接口中,添加lcd的設備操作,把圖像顯示到LCD上,只需要先打開lcd,然后進行control,兩條語句就可以實現顯示,特別方便操作。

51a05598-d249-11ee-a297-92fbcf53809c.png

最終可以實現使用簡單的IO設備即可操作LCD

52b2112e-d249-11ee-a297-92fbcf53809c.png

52b5c422-d249-11ee-a297-92fbcf53809c.png





審核編輯:劉清

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

    關注

    112

    文章

    16389

    瀏覽量

    178439
  • RGB
    RGB
    +關注

    關注

    4

    文章

    799

    瀏覽量

    58563
  • LCD驅動
    +關注

    關注

    4

    文章

    88

    瀏覽量

    26656
  • RT-Thread
    +關注

    關注

    31

    文章

    1293

    瀏覽量

    40222
  • 脈沖編碼器
    +關注

    關注

    0

    文章

    13

    瀏覽量

    8258

原文標題:RT-Thread設備驅動開發指南進階篇--動手驅動先楫LCD外設

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RT-Thread設備驅動開發指南基礎—以bsp的hwtimer設備為例

    RT-Thread設備驅動開發指南》書籍是RT-thread官方出品撰寫,系統講解RT-thread IO設備
    的頭像 發表于 02-20 16:01 ?1730次閱讀
    <b class='flag-5'>RT-Thread</b>設備<b class='flag-5'>驅動</b><b class='flag-5'>開發指南</b>基礎<b class='flag-5'>篇</b>—以<b class='flag-5'>先</b><b class='flag-5'>楫</b>bsp的hwtimer設備為例

    已結束-【書籍評測活動NO.4】RT-Thread官方撰寫,涵蓋26種設備驅動開發指南

    設備驅動開發技能。本書內容分為三:基礎進階篇與高級。基礎
    發表于 02-22 15:30

    RT-Thread設備驅動開發指南》讀書筆記

    的內容,熟悉了驅動開發的基本流程之后,就可以根據自己的需要,選擇對應的章節學習。(3) 書上還說了,閱讀本書要求讀者具備了RT-Thread的基礎知識,因此建議與大家學習《嵌入式實時
    發表于 03-23 10:35

    RT-Thread設備驅動開發指南》讀書測評

    驅動開發指南》這本書主要分了三個部分,由基礎進階篇,高級組成,適用不同層次的開發者,對于不
    發表于 03-26 21:04

    送《RT-Thread設備驅動開發指南》,手慢無!

    迫切地希望有一本可以指導他們在RT-Thread開發驅動指南。 為了解決開發者的燃眉之急, 《RT
    的頭像 發表于 03-19 23:00 ?1410次閱讀

    【讀書分享】《RT-Thread設備驅動開發指南》讀書筆記

    基礎進階篇,高級三個部分。每個部分都有很多章節,每一個章節都對應一個驅動類型,全書涉及的驅動如下圖: (2) 看下來,這本書其實更像是
    的頭像 發表于 03-28 13:05 ?1097次閱讀

    RT-Thread設備驅動開發指南》讀書筆記

    基礎進階篇,高級三個部分。每個部分都有很多章節,每一個章節都對應一個驅動類型,全書涉及的驅動如下圖: (2) 看下來,這本書其實更像是
    的頭像 發表于 04-01 01:45 ?2021次閱讀

    上海線下培訓:RT-Thread× HPM5300 for RT-Thread ,高性能 RISC-V 平臺開發快速上手

    RT-Thread的代表性產品和服務。 同時,我們也邀請到的資深工程師楊帆,他將為開發者們帶來期待已久的熱門技術主題培訓,RT-Thread
    的頭像 發表于 11-03 19:10 ?781次閱讀
    上海線下培訓:<b class='flag-5'>RT-Thread</b>×<b class='flag-5'>先</b><b class='flag-5'>楫</b>  HPM5300 for <b class='flag-5'>RT-Thread</b> ,高性能 RISC-V 平臺<b class='flag-5'>開發</b>快速上手

    RT-Thread BSP v1.3.0 發布

    各位的小伙伴們,我們很高興地通知您,半導體最新的RT-ThreadBSPv1.3.0正式發布了!!(該圖片來源于網絡)提供的主要功能
    的頭像 發表于 11-08 08:17 ?615次閱讀
    <b class='flag-5'>RT-Thread</b> BSP v1.3.0 發布

    線下活動|HPM5300 for RT-Thread ,高性能 RISC-V 平臺開發快速上手

    公司最新技術和創新解決方案的機會。參與者將深入了解半導體和RT-Thread的代表性產品和服務。同時,我們也邀請到的資深工程師楊帆老
    的頭像 發表于 11-08 08:18 ?679次閱讀
    線下活動|<b class='flag-5'>先</b><b class='flag-5'>楫</b>HPM5300 for <b class='flag-5'>RT-Thread</b> ,高性能 RISC-V 平臺<b class='flag-5'>開發</b>快速上手

    RK3568驅動指南驅動基礎進階篇-進階8 內核運行ko文件總結

    RK3568驅動指南驅動基礎進階篇-進階8 內核運行ko文件總結
    的頭像 發表于 01-31 14:58 ?1174次閱讀
    RK3568<b class='flag-5'>驅動</b><b class='flag-5'>指南</b>|<b class='flag-5'>驅動</b>基礎<b class='flag-5'>進階篇</b>-<b class='flag-5'>進階</b>8 內核運行ko文件總結

    RT-Thread BSP v1.4.0 正式發布

    親愛的小伙伴們:我們很高興地通知您,RT-ThreadBSPv1.4.0正式發布了!!1個小轉變:從這個版本開始,我們將更側重于利用RT-Thread豐富的組件以及特色的在線包,基
    的頭像 發表于 02-19 12:20 ?634次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b> <b class='flag-5'>RT-Thread</b> BSP v1.4.0 正式發布

    RK3568驅動指南驅動基礎進階篇-進階5 自定義實現insmod命令實驗

    RK3568驅動指南驅動基礎進階篇-進階5 自定義實現insmod命令實驗
    的頭像 發表于 02-20 14:10 ?714次閱讀
    RK3568<b class='flag-5'>驅動</b><b class='flag-5'>指南</b>|<b class='flag-5'>驅動</b>基礎<b class='flag-5'>進階篇</b>-<b class='flag-5'>進階</b>5 自定義實現insmod命令實驗

    RT-Thread設備驅動開發指南》基礎--以bsp的hwtimer設備為例

    一、概述(一)RT-Thread設備驅動RT-Thread設備驅動開發指南》書籍是RT-thread
    的頭像 發表于 02-24 08:16 ?1693次閱讀
    《<b class='flag-5'>RT-Thread</b>設備<b class='flag-5'>驅動</b><b class='flag-5'>開發指南</b>》基礎<b class='flag-5'>篇</b>--以<b class='flag-5'>先</b><b class='flag-5'>楫</b>bsp的hwtimer設備為例

    【好書推薦】RT-Thread設備驅動開發指南

    強烈,他們迫切地希望有一本可以指導他們在RT-Thread開發驅動指南。為了解決開發者的燃眉之急,《
    的頭像 發表于 08-01 08:35 ?663次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設備<b class='flag-5'>驅動</b><b class='flag-5'>開發指南</b>
    主站蜘蛛池模板: 成品片a免人看免费| 浪荡女天天不停挨CAO日常视| 欧美精品做人一级爱免费| 超嫩校花被灌醉在线观看| 日本十八禁无遮拦啪啪漫画| 国产精品A久久777777| 亚洲色t图| 欧美大片免费| 国产人妻精品午夜福利免费不卡 | 国产亚洲精品高清视频免费| 野花日本韩国视频免费高清观看| 暖暖 日本 视频 在线观看免费 | 青青操久久| 国产亚洲欧美高清在线| 2021久久精品免费观看| 我要女人的全黄录像| 麻豆人妻换人妻X99| 国产国产乱老熟视频网站| 一受多攻高h| 四虎影5151毛片在线看| 免费的黄直播| 国产亚洲精品影视在线| 扒开小处30p| 在线 自拍 综合 亚洲 欧美| 天天插天天舔| 泡妞高手在都市完整版视频免费 | 韩国精品无码少妇在线观看网站| 999久久狠狠免费精品| 羞羞影院男女爽爽影院尤物| 欧美69xxx| 久久精品亚洲视频| 国产国拍精品AV在线观看| 99国产福利| 在线播放午夜理论片| 亚洲 日韩经典 中文字幕| 青青青久久| 美国特级成人毛片| 精品国产免费观看久久久| 国产97视频在线观看| MATURETUBE乱妇| 777米奇影院第七色色|