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