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

?
【本文摘自】【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)
【相關(guān)視頻】OpenHarmony學(xué)習(xí)開(kāi)發(fā)系列教程(第1期 北向基礎(chǔ)篇一)
OpenHarmony學(xué)習(xí)開(kāi)發(fā)系列教程(第2期 南向基礎(chǔ)篇一)
第2章 內(nèi)核HDF驅(qū)動(dòng)框架架構(gòu)
本篇實(shí)戰(zhàn)我們將要配置HDF驅(qū)動(dòng)控制LED,在配置之前,我們首先要明白什么是HDF,以及HDF驅(qū)動(dòng)開(kāi)發(fā)的相關(guān)概念。
2.1驅(qū)動(dòng)架構(gòu)
下面的視頻——OpenHarmony功能框架
P2_OpenHarmony功能框架_嗶哩嗶哩_bilibili中提到了HDF(Hardware Driver Foundation)。接下來(lái)我們了解一下什么是HDF。
HDF(Hardware Driver foundation)驅(qū)動(dòng)框架,為驅(qū)動(dòng)開(kāi)發(fā)者提供驅(qū)動(dòng)框架能力,包括驅(qū)動(dòng)加載,驅(qū)動(dòng)服務(wù)管理和驅(qū)動(dòng)消息機(jī)制。旨在構(gòu)建統(tǒng)一的驅(qū)動(dòng)架構(gòu)平臺(tái),為驅(qū)動(dòng)開(kāi)發(fā)者提供更精準(zhǔn),更高效的開(kāi)發(fā)環(huán)境,力求做到一次開(kāi)發(fā),多系統(tǒng)部署。
HDF驅(qū)動(dòng)架構(gòu)采用C語(yǔ)言面向?qū)ο?a href="http://www.194w.cn/v/tag/1315/" target="_blank">編程模型構(gòu)建,通過(guò)平臺(tái)解耦,內(nèi)核解耦,來(lái)達(dá)到兼容不同內(nèi)核,統(tǒng)一平臺(tái)底座的目的。HDF驅(qū)動(dòng)框架架構(gòu)如圖所示:
?

HDF驅(qū)動(dòng)架構(gòu)主要組成部分:
HDI(Hardware Device Interface,硬件設(shè)備統(tǒng)一接口)層:通過(guò)規(guī)范化的設(shè)備接口標(biāo)準(zhǔn),為系統(tǒng)提供統(tǒng)一、穩(wěn)定的硬件設(shè)備操作接口。
HDF驅(qū)動(dòng)框架:提供統(tǒng)一的硬件資源管理、驅(qū)動(dòng)加載管理、設(shè)備節(jié)點(diǎn)管理、設(shè)備電源管理以及驅(qū)動(dòng)服務(wù)模型等功能,需要包含設(shè)備管理、服務(wù)管理、DeviceHost、PnPManager等模塊。
統(tǒng)一的配置界面:支持硬件資源的抽象描述,屏蔽硬件差異,可以支撐開(kāi)發(fā)者開(kāi)發(fā)出與配置信息不綁定的通用驅(qū)動(dòng)代碼,提升開(kāi)發(fā)及遷移效率,并可通過(guò)HC-Gen等工具快捷生成配置文件。
操作系統(tǒng)抽象層(OSAL,Operating System Abstraction Layer):提供統(tǒng)一封裝的內(nèi)核操作相關(guān)接口,屏蔽不同系統(tǒng)操作差異,包含內(nèi)存、鎖、線程、信號(hào)量等接口。
平臺(tái)驅(qū)動(dòng):為外設(shè)驅(qū)動(dòng)提供Board硬件(如:I2C/SPI/UART總線等平臺(tái)資源)操作統(tǒng)一接口,同時(shí)對(duì)Board硬件操作進(jìn)行統(tǒng)一的適配接口抽象以便于不同平臺(tái)遷移。
外設(shè)驅(qū)動(dòng)模型:面向外設(shè)驅(qū)動(dòng),提供常見(jiàn)的驅(qū)動(dòng)抽象模型,主要達(dá)成兩個(gè)目的,提供標(biāo)準(zhǔn)化的器件驅(qū)動(dòng),開(kāi)發(fā)者無(wú)需獨(dú)立開(kāi)發(fā),通過(guò)配置即可完成驅(qū)動(dòng)的部署;提供驅(qū)動(dòng)模型抽象,屏蔽驅(qū)動(dòng)與不同系統(tǒng)組件間的交互,使得驅(qū)動(dòng)更具備通用性。
2.2平臺(tái)驅(qū)動(dòng)
OpenHarmony平臺(tái)驅(qū)動(dòng)(Platform Driver)是為平臺(tái)設(shè)備(Platform Device)提供驅(qū)動(dòng)支持的接口,幫助系統(tǒng)和外設(shè)之間的互通。這里的平臺(tái)設(shè)備包括總線接口(如I2C、UART)以及特定硬件資源(如GPIO、RTC等)。平臺(tái)驅(qū)動(dòng)框架是OpenHarmony驅(qū)動(dòng)框架的核心部分,基于HDF驅(qū)動(dòng)框架、操作系統(tǒng)適配層和驅(qū)動(dòng)配置管理,提供一個(gè)統(tǒng)一的標(biāo)準(zhǔn)模型,幫助開(kāi)發(fā)者實(shí)現(xiàn)各類(lèi)平臺(tái)設(shè)備驅(qū)動(dòng)。
平臺(tái)驅(qū)動(dòng)框架的主要特點(diǎn)包括:
統(tǒng)一的平臺(tái)設(shè)備訪問(wèn)接口:為平臺(tái)設(shè)備操作提供統(tǒng)一的接口,屏蔽不同硬件平臺(tái)(SoC)和操作系統(tǒng)(OS)的差異。
統(tǒng)一的適配接口:為平臺(tái)設(shè)備驅(qū)動(dòng)提供統(tǒng)一的接口,讓開(kāi)發(fā)者只需關(guān)注硬件控制,而無(wú)需關(guān)心設(shè)備管理或其他公共流程。
提供公共能力:提供設(shè)備注冊(cè)、管理、訪問(wèn)控制等功能,且與特定SoC平臺(tái)無(wú)關(guān)。
平臺(tái)驅(qū)動(dòng)框架支持的設(shè)備類(lèi)型包括但不限于:ADC、DAC、GPIO、HDMI、I2C、I3C、MIPI_CSI、MIPI_DSI、MMC、Pin、PWM、Regulator、RTC、SDIO、SPI、UART、WatchDog等。
2.3外設(shè)驅(qū)動(dòng)
OpenHarmony在HDF驅(qū)動(dòng)框架和平臺(tái)驅(qū)動(dòng)框架的基礎(chǔ)上,為外設(shè)設(shè)備提供了標(biāo)準(zhǔn)化的驅(qū)動(dòng)模型。這些驅(qū)動(dòng)模型可以幫助開(kāi)發(fā)者減少重復(fù)開(kāi)發(fā)工作,并提供統(tǒng)一的抽象層,屏蔽了驅(qū)動(dòng)與系統(tǒng)其他組件之間的復(fù)雜交互,使得驅(qū)動(dòng)更加通用、易于移植。
目前,OpenHarmony支持的外設(shè)設(shè)備類(lèi)型包括但不限于:音頻(Audio)、攝像頭(Camera)、編解碼器(Codec)、人臉識(shí)別(Face_auth)、指紋識(shí)別(Fingerprint_auth)、LCD屏幕(LCD)、燈光控制(Light)、運(yùn)動(dòng)傳感器(Motion)、引腳認(rèn)證(Pin_auth)、傳感器(Sensor)、觸摸屏(Touchscreen)、USB、用戶認(rèn)證(User_auth)、振動(dòng)器(Vibrator)、無(wú)線局域網(wǎng)(WLAN)等。
2.4 HCS簡(jiǎn)介
HCS(HDF Configuration Source)是HDF驅(qū)動(dòng)框架的配置描述源碼,內(nèi)容以Key-Value為主要形式。它實(shí)現(xiàn)了配置代碼與驅(qū)動(dòng)代碼解耦,便于開(kāi)發(fā)者進(jìn)行配置管理。HC-GEN(HDF Configuration Generator)是HCS配置轉(zhuǎn)換工具,可以將HDF配置文件轉(zhuǎn)換為軟件可讀取的文件格式。在高性能環(huán)境中,HCS經(jīng)過(guò)HC-GEN編譯生成HCB(HDF Configuration Binary)二進(jìn)制文件,HDF驅(qū)動(dòng)框架中的HCS Parser模塊會(huì)從HCB文件中重建配置樹(shù),HDF驅(qū)動(dòng)模塊使用HCS Parser提供的配置讀取接口獲取配置內(nèi)容。HCB配置使用流程圖如下圖所示:
?

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

(2)基本結(jié)構(gòu)
HCS主要分為屬性(Attribute)和節(jié)點(diǎn)(Node)兩種結(jié)構(gòu)。
屬性
屬性是最小的配置單元,表示一個(gè)獨(dú)立的配置項(xiàng),語(yǔ)法格式如下:
attribute_name = value;
attribute_name:由字母、數(shù)字、下劃線組成,且必須以字母或下劃線開(kāi)頭,字母區(qū)分大小寫(xiě)。
value:可以是以下幾種類(lèi)型:
數(shù)字常量:支持二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制,具體類(lèi)型參考數(shù)據(jù)類(lèi)型部分。
字符串:使用雙引號(hào)("")括起來(lái)。
-
HDF框架
+關(guān)注
關(guān)注
0文章
10瀏覽量
2912 -
OpenHarmony
+關(guān)注
關(guān)注
29文章
3851瀏覽量
18576 -
迅為電子
+關(guān)注
關(guān)注
0文章
64瀏覽量
175
發(fā)布評(píng)論請(qǐng)先 登錄
迅為RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)

迅為RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)三級(jí)節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)

鴻蒙OpenHarmony南向/北向快速開(kāi)發(fā)教程-迅為RK3568開(kāi)發(fā)板
迅為RK3568開(kāi)發(fā)板篇OpenHarmony配置HDF驅(qū)動(dòng)控制LED-新增 topeet子系統(tǒng)
迅為RK3568開(kāi)發(fā)板篇OpenHarmony實(shí)操HDF驅(qū)動(dòng)控制LED-編寫(xiě)內(nèi)核 LED HDF 驅(qū)動(dòng)程序
迅為RK3568開(kāi)發(fā)板篇OpenHarmony實(shí)操HDF驅(qū)動(dòng)控制LED-添加內(nèi)核編譯
迅為基于RK3568開(kāi)發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)視頻

迅為RK3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南-輸入子系統(tǒng)

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

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

【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)GPIO基礎(chǔ)知識(shí)

北京迅為iTOP-RK3568開(kāi)發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)實(shí)操-HDF驅(qū)動(dòng)配置LED

【北京迅為】iTOP-RK3568開(kāi)發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)-第4章 UART基礎(chǔ)知識(shí)

【北京迅為】iTOP-RK3568開(kāi)發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)實(shí)操-HDF驅(qū)動(dòng)配置UART

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

評(píng)論