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