一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

北京迅為RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)內(nèi)核HDF驅(qū)動框架架構(gòu)

北京迅為電子 ? 2025-03-11 14:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE圖形處理器。RK3568支持4K解碼和1080P編碼,支持SATA/PCIE/USB3.0外圍接口。RK3568內(nèi)置獨立NPU,可用于輕量級人工智能應(yīng)用。RK3568支持安卓11和linux系統(tǒng),主要面向物聯(lián)網(wǎng)網(wǎng)關(guān)、NVR存儲、工控平板、工業(yè)檢測、工控盒、卡拉OK、云終端、車載中控等行業(yè)。

wKgZPGfP1EyACEVCAAaxZvHsmZ4328.png

?

【本文摘自】【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)

【相關(guān)視頻】OpenHarmony學(xué)習(xí)開發(fā)系列教程(第1期 北向基礎(chǔ)篇一)

OpenHarmony學(xué)習(xí)開發(fā)系列教程(第2期 南向基礎(chǔ)篇一)

第2章 內(nèi)核HDF驅(qū)動框架架構(gòu)

本篇實戰(zhàn)我們將要配置HDF驅(qū)動控制LED,在配置之前,我們首先要明白什么是HDF,以及HDF驅(qū)動開發(fā)的相關(guān)概念。

2.1驅(qū)動架構(gòu)

下面的視頻——OpenHarmony功能框架

P2_OpenHarmony功能框架_嗶哩嗶哩_bilibili中提到了HDF(Hardware Driver Foundation)。接下來我們了解一下什么是HDF。

HDF(Hardware Driver foundation)驅(qū)動框架,為驅(qū)動開發(fā)者提供驅(qū)動框架能力,包括驅(qū)動加載,驅(qū)動服務(wù)管理和驅(qū)動消息機制。旨在構(gòu)建統(tǒng)一的驅(qū)動架構(gòu)平臺,為驅(qū)動開發(fā)者提供更精準,更高效的開發(fā)環(huán)境,力求做到一次開發(fā),多系統(tǒng)部署。

HDF驅(qū)動架構(gòu)采用C語言面向?qū)ο?a href="http://www.www27dydycom.cn/v/tag/1315/" target="_blank">編程模型構(gòu)建,通過平臺解耦,內(nèi)核解耦,來達到兼容不同內(nèi)核,統(tǒng)一平臺底座的目的。HDF驅(qū)動框架架構(gòu)如圖所示:

?

wKgZPGfP1EyASA4wAADCmqz2aOk226.png

HDF驅(qū)動架構(gòu)主要組成部分:

HDI(Hardware Device Interface,硬件設(shè)備統(tǒng)一接口)層:通過規(guī)范化的設(shè)備接口標準,為系統(tǒng)提供統(tǒng)一、穩(wěn)定的硬件設(shè)備操作接口。

HDF驅(qū)動框架:提供統(tǒng)一的硬件資源管理、驅(qū)動加載管理、設(shè)備節(jié)點管理、設(shè)備電源管理以及驅(qū)動服務(wù)模型等功能,需要包含設(shè)備管理、服務(wù)管理、DeviceHost、PnPManager等模塊。

統(tǒng)一的配置界面:支持硬件資源的抽象描述,屏蔽硬件差異,可以支撐開發(fā)者開發(fā)出與配置信息不綁定的通用驅(qū)動代碼,提升開發(fā)及遷移效率,并可通過HC-Gen等工具快捷生成配置文件。

操作系統(tǒng)抽象層(OSAL,Operating System Abstraction Layer):提供統(tǒng)一封裝的內(nèi)核操作相關(guān)接口,屏蔽不同系統(tǒng)操作差異,包含內(nèi)存、鎖、線程、信號量等接口。

平臺驅(qū)動:為外設(shè)驅(qū)動提供Board硬件(如:I2C/SPI/UART總線等平臺資源)操作統(tǒng)一接口,同時對Board硬件操作進行統(tǒng)一的適配接口抽象以便于不同平臺遷移。

外設(shè)驅(qū)動模型:面向外設(shè)驅(qū)動,提供常見的驅(qū)動抽象模型,主要達成兩個目的,提供標準化的器件驅(qū)動,開發(fā)者無需獨立開發(fā),通過配置即可完成驅(qū)動的部署;提供驅(qū)動模型抽象,屏蔽驅(qū)動與不同系統(tǒng)組件間的交互,使得驅(qū)動更具備通用性。

2.2平臺驅(qū)動

OpenHarmony平臺驅(qū)動(Platform Driver)是為平臺設(shè)備(Platform Device)提供驅(qū)動支持的接口,幫助系統(tǒng)和外設(shè)之間的互通。這里的平臺設(shè)備包括總線接口(如I2C、UART)以及特定硬件資源(如GPIO、RTC等)。平臺驅(qū)動框架是OpenHarmony驅(qū)動框架的核心部分,基于HDF驅(qū)動框架、操作系統(tǒng)適配層和驅(qū)動配置管理,提供一個統(tǒng)一的標準模型,幫助開發(fā)者實現(xiàn)各類平臺設(shè)備驅(qū)動。

平臺驅(qū)動框架的主要特點包括:

統(tǒng)一的平臺設(shè)備訪問接口:為平臺設(shè)備操作提供統(tǒng)一的接口,屏蔽不同硬件平臺(SoC)和操作系統(tǒng)(OS)的差異。

統(tǒng)一的適配接口:為平臺設(shè)備驅(qū)動提供統(tǒng)一的接口,讓開發(fā)者只需關(guān)注硬件控制,而無需關(guān)心設(shè)備管理或其他公共流程。

提供公共能力:提供設(shè)備注冊、管理、訪問控制等功能,且與特定SoC平臺無關(guān)。

平臺驅(qū)動框架支持的設(shè)備類型包括但不限于:ADC、DAC、GPIO、HDMI、I2C、I3C、MIPI_CSI、MIPI_DSI、MMC、Pin、PWM、Regulator、RTC、SDIO、SPI、UART、WatchDog等。

2.3外設(shè)驅(qū)動

OpenHarmony在HDF驅(qū)動框架和平臺驅(qū)動框架的基礎(chǔ)上,為外設(shè)設(shè)備提供了標準化的驅(qū)動模型。這些驅(qū)動模型可以幫助開發(fā)者減少重復(fù)開發(fā)工作,并提供統(tǒng)一的抽象層,屏蔽了驅(qū)動與系統(tǒng)其他組件之間的復(fù)雜交互,使得驅(qū)動更加通用、易于移植。

目前,OpenHarmony支持的外設(shè)設(shè)備類型包括但不限于:音頻(Audio)、攝像頭(Camera)、編解碼器(Codec)、人臉識別(Face_auth)、指紋識別(Fingerprint_auth)、LCD屏幕(LCD)、燈光控制(Light)、運動傳感器(Motion)、引腳認證(Pin_auth)、傳感器(Sensor)、觸摸屏(Touchscreen)、USB、用戶認證(User_auth)、振動器(Vibrator)、無線局域網(wǎng)(WLAN)等。

2.4 HCS簡介

HCS(HDF Configuration Source)是HDF驅(qū)動框架的配置描述源碼,內(nèi)容以Key-Value為主要形式。它實現(xiàn)了配置代碼與驅(qū)動代碼解耦,便于開發(fā)者進行配置管理。HC-GEN(HDF Configuration Generator)是HCS配置轉(zhuǎn)換工具,可以將HDF配置文件轉(zhuǎn)換為軟件可讀取的文件格式。在高性能環(huán)境中,HCS經(jīng)過HC-GEN編譯生成HCB(HDF Configuration Binary)二進制文件,HDF驅(qū)動框架中的HCS Parser模塊會從HCB文件中重建配置樹,HDF驅(qū)動模塊使用HCS Parser提供的配置讀取接口獲取配置內(nèi)容。HCB配置使用流程圖如下圖所示:

?

wKgZO2fP1EyAR03wAAAVxqxdALM687.png

接下來介紹一下HCS的語法,HCS配置語法保留了以下關(guān)鍵字。

(1)保留關(guān)鍵字

wKgZO2fP1EyACd3fAAA3VII8UZI718.png

(2)基本結(jié)構(gòu)

HCS主要分為屬性(Attribute)和節(jié)點(Node)兩種結(jié)構(gòu)。

屬性

屬性是最小的配置單元,表示一個獨立的配置項,語法格式如下:

attribute_name = value;

attribute_name:由字母、數(shù)字、下劃線組成,且必須以字母或下劃線開頭,字母區(qū)分大小寫。

value:可以是以下幾種類型:

數(shù)字常量:支持二進制、八進制、十進制、十六進制,具體類型參考數(shù)據(jù)類型部分。

字符串:使用雙引號("")括起來。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HDF框架
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2900
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3847

    瀏覽量

    18346
  • 迅為電子
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    152
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    RK3568開發(fā)板驅(qū)動指南Linux中通用SPI設(shè)備驅(qū)動

    RK3568開發(fā)板驅(qū)動指南Linux中通用SPI設(shè)備驅(qū)動
    的頭像 發(fā)表于 01-23 11:02 ?2662次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>驅(qū)動</b>指南Linux中通用SPI設(shè)備<b class='flag-5'>驅(qū)動</b>

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗
    的頭像 發(fā)表于 05-26 15:39 ?707次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>驅(qū)動</b>指南GPIO子<b class='flag-5'>系統(tǒng)</b>三級節(jié)點操作函數(shù)實驗

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-RK3568開發(fā)板

    -修改產(chǎn)品信息 P20_源碼定制-關(guān)閉自動息屏 P21_源碼定制-修改開機logo和動畫 P22_新建運行北向應(yīng)用 RK3568開發(fā)板同時也支持更多
    發(fā)表于 07-23 10:44

    RK3568開發(fā)板OpenHarmony配置HDF驅(qū)動控制LED-新增 topeet子系統(tǒng)

    程序目錄 ├── led_driver.c:內(nèi)核 LED HDF 驅(qū)動程序 └── Makefile:內(nèi)核 LED HDF
    發(fā)表于 01-13 15:59

    RK3568開發(fā)板OpenHarmony實操HDF驅(qū)動控制LED-編寫內(nèi)核 LED HDF 驅(qū)動程序

    接下來編譯 LED 驅(qū)動,該驅(qū)動用于在基于華為設(shè)備框架HDF)的系統(tǒng)中控制 LED 燈的開關(guān),完整代碼如下所示: 更多內(nèi)容可以關(guān)注:
    發(fā)表于 01-17 15:13

    RK3568開發(fā)板OpenHarmony實操HDF驅(qū)動控制LED-添加內(nèi)核編譯

    編譯內(nèi)核時將該 HDF 驅(qū)動編譯到鏡像中,接下來編寫驅(qū)動編譯腳本 Makefile,代碼如下所示: 加入編譯體系,填加模塊目錄到 drivers/h
    發(fā)表于 01-22 10:35

    基于RK3568開發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動視頻

    基于RK3568開發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動視頻
    的頭像 發(fā)表于 05-19 16:30 ?1313次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>基于<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>的嵌入式學(xué)習(xí)之Linux<b class='flag-5'>驅(qū)動</b>視頻

    RK3568開發(fā)板驅(qū)動開發(fā)指南-輸入子系統(tǒng)

    RK3568開發(fā)板驅(qū)動開發(fā)指南-輸入子系統(tǒng)
    的頭像 發(fā)表于 02-23 15:11 ?1536次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>指南-輸入子<b class='flag-5'>系統(tǒng)</b>

    北京RK3568開發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動全新更新-CAN+

    北京RK3568開發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動全新更新-CAN+
    的頭像 發(fā)表于 09-04 15:29 ?985次閱讀
    <b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>嵌入式學(xué)習(xí)之Linux<b class='flag-5'>驅(qū)動</b>全新更新-CAN+

    【技術(shù)分享】RK3568開發(fā)板使用TFTP加載內(nèi)核設(shè)備樹

    【技術(shù)分享】RK3568開發(fā)板使用TFTP加載內(nèi)核設(shè)備樹
    的頭像 發(fā)表于 02-21 14:04 ?646次閱讀
    【技術(shù)分享】<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>使用TFTP加載<b class='flag-5'>內(nèi)核</b>設(shè)備樹

    北京】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)GPIO基礎(chǔ)知識

    北京】iTOP-RK3568OpenHarmony系統(tǒng)南向
    的頭像 發(fā)表于 03-06 11:23 ?571次閱讀
    【<b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-<b class='flag-5'>RK3568OpenHarmony</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>南向</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>GPIO基礎(chǔ)知識

    北京iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)實操-HDF驅(qū)動配置LED

    北京iTOP-RK3568開發(fā)板OpenHarmony
    的頭像 發(fā)表于 03-14 14:41 ?580次閱讀
    <b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>OpenHarmony</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>南向</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>實操-<b class='flag-5'>HDF</b><b class='flag-5'>驅(qū)動</b>配置LED

    北京】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)-第4章 UART基礎(chǔ)知識

    北京】iTOP-RK3568開發(fā)板OpenHarmony
    的頭像 發(fā)表于 03-17 15:50 ?411次閱讀
    【<b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>OpenHarmony</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>南向</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-第4章 UART基礎(chǔ)知識

    北京】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)實操-HDF驅(qū)動配置UART

    北京】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony
    的頭像 發(fā)表于 03-25 11:02 ?646次閱讀
    【<b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>鴻蒙<b class='flag-5'>OpenHarmony</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>南向</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>實操-<b class='flag-5'>HDF</b><b class='flag-5'>驅(qū)動</b>配置UART

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)
    的頭像 發(fā)表于 05-29 14:05 ?410次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>驅(qū)動</b>指南GPIO子<b class='flag-5'>系統(tǒng)</b>GPIO子<b class='flag-5'>系統(tǒng)</b>API函數(shù)的引入