OpenHarmony 3.2 Release新特性解读之驱动HCS

系统 OpenHarmony
HCS(HDF Configuration Source)是HDF驱动框架的配置描述源码,内容以Key-Value为主要形式。它实现了配置代码与驱动代码解耦,便于开发者进行配置管理。

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

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框架提供的配置解析接口获取配置。

OpenHarmony 3.2 Release新特性解读之驱动HCS-开源基础软件社区

图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文件的适配工作。

OpenHarmony 3.2 Release新特性解读之驱动HCS-开源基础软件社区

图2 HCS配置可视化编辑

● GUI界面可视化编辑,显示直观,操作友好。

● 错误实时提示,降低HCS配置方法学习成本。

● 完成语法检查,HCS文件0错误。

3 、HDF设备驱动开发模板代码生成

驱动模板智能化生成,主要应用于内核态驱动开发场景。内核态驱动代码对于不同的设备类型,但是都具有相似的驱动架构框架。对于这部分相同的重复代码,可以通过智能化自动化生成,方便开发者的调试工作,减少不必要的重复工作。创建模块名称,通过IDE提供的工具直接生成一个模板。主要包括以下方面:

OpenHarmony 3.2 Release新特性解读之驱动HCS-开源基础软件社区

图3 HDF驱动模板自动生成

  • 驱动模板:开发具体驱动代码;
  • 配置模板:hcs模板基本字段生成完成;
  • 编译模板:gn文件自动化生成。
  • 整体的驱动框架代码自动生成,减少重复劳动。

4 、总结

OpenHarmony 3.2 Release版本驱动框架在原来的HDF架构基础上进行了细化,新增HCS宏式解析,使得系统ROM空间得到进一步的节省,增加参数调用效率;新增HCS可视化编辑器,提供hcsView扩展工具,极大的提高了HCS编译效率,降低了门槛,减少了错误率;新增HDF驱动代码模板自动化生成,增加内核驱动代码的开发效率,减少重复劳动。

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

责任编辑:jianghua 来源: 51CTO 开源基础软件社区
相关推荐

2023-06-26 16:13:43

马达驱动模型鸿蒙

2021-11-01 19:49:55

React组件模式

2022-05-05 11:20:08

KubernetesDocker云计算

2011-09-30 09:47:15

GNOME 3.2

2023-03-15 07:29:54

开源数据湖

2019-03-05 15:03:09

Android Q安卓系统功能

2023-12-11 17:26:21

Launcher鸿蒙预安装应用

2022-08-29 15:30:46

TypeScript代码

2013-06-30 09:51:54

SpringWeb服务器

2021-07-19 07:55:24

多线程模型Redis

2022-07-20 11:47:18

数据

2023-03-07 15:46:20

鸿蒙音频渲染

2022-05-27 15:04:53

鸿蒙操作系统

2009-07-03 16:48:05

Windows CE

2009-08-03 18:34:43

TuplizersNHibernate

2017-01-09 16:25:55

Android Shortcuts系统

2019-11-17 22:47:53

HTTP23

2013-05-20 10:25:45

vSphere 5.1vMotion

2018-09-19 16:15:18

MySQL直方图数据库
点赞
收藏

51CTO技术栈公众号