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获取配置 。
【OpenHarmony 3.2 Release新特性解读之驱动HCS】● 在高性能环境中 , 转换为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文件自动化生成 。
- 整体的驱动框架代码自动生成 , 减少重复劳动 。
推荐阅读
- 《绝地求生》23.2 版本正式服开放:最新复活系统上线
- 星星说|《星星说》巨蟹座周运(3.27-4.2)工作有好事发生,职场备受关注
- 龚俊|2023.3.28娱乐爆料:王俊凯、肖战、杨超越、胡歌、龚俊、张艺兴
- 龚俊|2023.3.25娱乐爆料:李沁、肖战、高叶、龚俊、王菲、杨紫、杨幂
- 大S|2023.3.24娱乐爆料:刘诗诗、肖战、大S、许凯、杨紫、杨洋、吴京
- 许多|?(周运)Alex 12星座一周运势(3.20—3.26)
- 洗发水|国产洗发水再次“夺冠”?1天销量3.28亿,“超车”海飞丝、飘柔
- 基金和理财有什么区别(投资100每天收益3.24元)
- Openharmony南向研究—Linux驱动框架-串口
- 北回归线是23.5还是23.26?指南针n和s是什么方向?