OpenHarmony 3.2 Release新特性解讀之驅(qū)動HCS
OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)開源社區(qū),在今年4月正式發(fā)布了OpenHarmony 3.2 Release版本,標準系統(tǒng)能力進一步完善,提升了系統(tǒng)的整體性能、穩(wěn)定性和安全性。此次版本對于驅(qū)動也提供了一些新的特性,極大的方便了驅(qū)動開發(fā)工作。其中針對HCS文件開發(fā)提供新的開發(fā)思路,本文就簡單介紹一下相關(guān)內(nèi)容。
1 、HCS宏式解析
(1)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)境中,轉(zhuǎn)換為配置樹源碼或配置樹宏定義,驅(qū)動可直接調(diào)用C代碼或宏式APIs獲取配置。
● 在高性能環(huán)境中,轉(zhuǎn)換為HCB(HDF Configuration Binary)二進制文件,驅(qū)動可使用HDF框架提供的配置解析接口獲取配置。
圖1 配置使用流程圖
HCS經(jīng)過HC-GEN編譯生成HCB文件,HDF驅(qū)動框架中的HCS Parser模塊會從HCB文件中重建配置樹,HDF驅(qū)動模塊使用HCS Parser提供的配置讀取接口獲取配置內(nèi)容。
(2)HCS宏式解析特性
HCS宏式解析主要是為了支持Mini類系統(tǒng)設備,是一種為Mini系統(tǒng)提供極小資源占用的HCS配置管理方案。之前的方案HCS文件完成編譯之后會生成獨立的二進制文件。在宏式解析之后生成一個代碼文件,可以和驅(qū)動代碼一起編譯,這樣就節(jié)省ROM空間,增加參數(shù)調(diào)用效率。
極致性能:
● 資源占用相比二進制解析降低50%。
● 解析在編譯階段完成,運行效率提升70%。
開發(fā)友好:
● 提供了適用于小型設備驅(qū)動軟硬件解耦方案。
● 功能完備,支持節(jié)點和屬性的查詢、遍歷、判斷等操作。
HCS宏式解析功能的應用,極大的方便了開發(fā)者對于不同設備,相同驅(qū)動的移植適配工作,使得多場景、多功能Mini類系統(tǒng)設備的應用成為現(xiàn)實。
2 、HCS可視化編輯器
VScode提供hcsView擴展工具,支持HCS文件的導入、編譯、導出功能。編譯器工具的推廣,很好的方便了HCS文件的適配工作。
圖2 HCS配置可視化編輯
● GUI界面可視化編輯,顯示直觀,操作友好。
● 錯誤實時提示,降低HCS配置方法學習成本。
● 完成語法檢查,HCS文件0錯誤。
3 、HDF設備驅(qū)動開發(fā)模板代碼生成
驅(qū)動模板智能化生成,主要應用于內(nèi)核態(tài)驅(qū)動開發(fā)場景。內(nèi)核態(tài)驅(qū)動代碼對于不同的設備類型,但是都具有相似的驅(qū)動架構(gòu)框架。對于這部分相同的重復代碼,可以通過智能化自動化生成,方便開發(fā)者的調(diào)試工作,減少不必要的重復工作。創(chuàng)建模塊名稱,通過IDE提供的工具直接生成一個模板。主要包括以下方面:
圖3 HDF驅(qū)動模板自動生成
- 驅(qū)動模板:開發(fā)具體驅(qū)動代碼;
- 配置模板:hcs模板基本字段生成完成;
- 編譯模板:gn文件自動化生成。
- 整體的驅(qū)動框架代碼自動生成,減少重復勞動。
4 、總結(jié)
OpenHarmony 3.2 Release版本驅(qū)動框架在原來的HDF架構(gòu)基礎(chǔ)上進行了細化,新增HCS宏式解析,使得系統(tǒng)ROM空間得到進一步的節(jié)省,增加參數(shù)調(diào)用效率;新增HCS可視化編輯器,提供hcsView擴展工具,極大的提高了HCS編譯效率,降低了門檻,減少了錯誤率;新增HDF驅(qū)動代碼模板自動化生成,增加內(nèi)核驅(qū)動代碼的開發(fā)效率,減少重復勞動。