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

?
【本文摘自】【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅動開發(fā)
【相關視頻】OpenHarmony學習開發(fā)系列教程(第1期 北向基礎篇一)
OpenHarmony學習開發(fā)系列教程(第2期 南向基礎篇一)
第2章 內核HDF驅動框架架構
本篇實戰(zhàn)我們將要配置HDF驅動控制LED,在配置之前,我們首先要明白什么是HDF,以及HDF驅動開發(fā)的相關概念。
2.1驅動架構
下面的視頻——OpenHarmony功能框架
P2_OpenHarmony功能框架_嗶哩嗶哩_bilibili中提到了HDF(Hardware Driver Foundation)。接下來我們了解一下什么是HDF。
HDF(Hardware Driver foundation)驅動框架,為驅動開發(fā)者提供驅動框架能力,包括驅動加載,驅動服務管理和驅動消息機制。旨在構建統(tǒng)一的驅動架構平臺,為驅動開發(fā)者提供更精準,更高效的開發(fā)環(huán)境,力求做到一次開發(fā),多系統(tǒng)部署。
HDF驅動架構采用C語言面向對象編程模型構建,通過平臺解耦,內核解耦,來達到兼容不同內核,統(tǒng)一平臺底座的目的。HDF驅動框架架構如圖所示:
?

HDF驅動架構主要組成部分:
HDI(Hardware Device Interface,硬件設備統(tǒng)一接口)層:通過規(guī)范化的設備接口標準,為系統(tǒng)提供統(tǒng)一、穩(wěn)定的硬件設備操作接口。
HDF驅動框架:提供統(tǒng)一的硬件資源管理、驅動加載管理、設備節(jié)點管理、設備電源管理以及驅動服務模型等功能,需要包含設備管理、服務管理、DeviceHost、PnPManager等模塊。
統(tǒng)一的配置界面:支持硬件資源的抽象描述,屏蔽硬件差異,可以支撐開發(fā)者開發(fā)出與配置信息不綁定的通用驅動代碼,提升開發(fā)及遷移效率,并可通過HC-Gen等工具快捷生成配置文件。
操作系統(tǒng)抽象層(OSAL,Operating System Abstraction Layer):提供統(tǒng)一封裝的內核操作相關接口,屏蔽不同系統(tǒng)操作差異,包含內存、鎖、線程、信號量等接口。
平臺驅動:為外設驅動提供Board硬件(如:I2C/SPI/UART總線等平臺資源)操作統(tǒng)一接口,同時對Board硬件操作進行統(tǒng)一的適配接口抽象以便于不同平臺遷移。
外設驅動模型:面向外設驅動,提供常見的驅動抽象模型,主要達成兩個目的,提供標準化的器件驅動,開發(fā)者無需獨立開發(fā),通過配置即可完成驅動的部署;提供驅動模型抽象,屏蔽驅動與不同系統(tǒng)組件間的交互,使得驅動更具備通用性。
2.2平臺驅動
OpenHarmony平臺驅動(Platform Driver)是為平臺設備(Platform Device)提供驅動支持的接口,幫助系統(tǒng)和外設之間的互通。這里的平臺設備包括總線接口(如I2C、UART)以及特定硬件資源(如GPIO、RTC等)。平臺驅動框架是OpenHarmony驅動框架的核心部分,基于HDF驅動框架、操作系統(tǒng)適配層和驅動配置管理,提供一個統(tǒng)一的標準模型,幫助開發(fā)者實現(xiàn)各類平臺設備驅動。
平臺驅動框架的主要特點包括:
統(tǒng)一的平臺設備訪問接口:為平臺設備操作提供統(tǒng)一的接口,屏蔽不同硬件平臺(SoC)和操作系統(tǒng)(OS)的差異。
統(tǒng)一的適配接口:為平臺設備驅動提供統(tǒng)一的接口,讓開發(fā)者只需關注硬件控制,而無需關心設備管理或其他公共流程。
提供公共能力:提供設備注冊、管理、訪問控制等功能,且與特定SoC平臺無關。
平臺驅動框架支持的設備類型包括但不限于:ADC、DAC、GPIO、HDMI、I2C、I3C、MIPI_CSI、MIPI_DSI、MMC、Pin、PWM、Regulator、RTC、SDIO、SPI、UART、WatchDog等。
2.3外設驅動
OpenHarmony在HDF驅動框架和平臺驅動框架的基礎上,為外設設備提供了標準化的驅動模型。這些驅動模型可以幫助開發(fā)者減少重復開發(fā)工作,并提供統(tǒng)一的抽象層,屏蔽了驅動與系統(tǒng)其他組件之間的復雜交互,使得驅動更加通用、易于移植。
目前,OpenHarmony支持的外設設備類型包括但不限于:音頻(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驅動框架的配置描述源碼,內容以Key-Value為主要形式。它實現(xiàn)了配置代碼與驅動代碼解耦,便于開發(fā)者進行配置管理。HC-GEN(HDF Configuration Generator)是HCS配置轉換工具,可以將HDF配置文件轉換為軟件可讀取的文件格式。在高性能環(huán)境中,HCS經(jīng)過HC-GEN編譯生成HCB(HDF Configuration Binary)二進制文件,HDF驅動框架中的HCS Parser模塊會從HCB文件中重建配置樹,HDF驅動模塊使用HCS Parser提供的配置讀取接口獲取配置內容。HCB配置使用流程圖如下圖所示:
?

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

(2)基本結構
HCS主要分為屬性(Attribute)和節(jié)點(Node)兩種結構。
屬性
屬性是最小的配置單元,表示一個獨立的配置項,語法格式如下:
attribute_name = value;
attribute_name:由字母、數(shù)字、下劃線組成,且必須以字母或下劃線開頭,字母區(qū)分大小寫。
value:可以是以下幾種類型:
數(shù)字常量:支持二進制、八進制、十進制、十六進制,具體類型參考數(shù)據(jù)類型部分。
字符串:使用雙引號("")括起來。
-
HDF框架
+關注
關注
0文章
10瀏覽量
2863 -
OpenHarmony
+關注
關注
26文章
3804瀏覽量
17849 -
迅為電子
+關注
關注
0文章
50瀏覽量
127
發(fā)布評論請先 登錄
相關推薦
鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)板
迅為RK3568開發(fā)板篇OpenHarmony配置HDF驅動控制LED-新增 topeet子系統(tǒng)
迅為RK3568開發(fā)板篇OpenHarmony實操HDF驅動控制LED-編寫內核 LED HDF 驅動程序
迅為RK3568開發(fā)板篇OpenHarmony實操HDF驅動控制LED-添加內核編譯
迅為RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)固件燒寫步驟
【北京迅為】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅動開發(fā)-第4章 UART基礎知識

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

評論