简介
OpenHarmony通过HDF(Hardware Driver Foundation)驱动框架来管理系统中所有驱动。HDF框架下驱动结构如下图。同一类型的设备都放在一个host下管理,像sensor、display、input等是HDF框架下不同的host,来管理自己相关的设备
image.png
详细信息可以参考文档:OpenHarmony HDF 驱动框架介绍和驱动加载过程分析
HDF框架是以HCS(HDF Configuration Source)配置文件来描述设备信息,模板信息如下:
image.png
详细信息可以参考文档:OpenHarmony HDF 配置管理分析及使用
HDF启动流程
官方文档中对HDF框架的介绍已经很多,但是都是理论,为了加深理解,通过阅读代码将整个启动流程画了一张图如下:
image.png
注意事项
-
hdf模型在官方文档中画的图与当前master分支代码不一致,以ACCEL这个sensor为例,按官方文档模型应该如下图
image.png
但是按源码看模型如下图
image.png
对应实际的hcs配置,如下图
image.png
-
sensorInfo中的几个相关name长度不要超过16,不然会报错导致配置信息无法加载。代码路径:drivers\framework\model\sensor\driver\common\src\sensor_config_parser.c
里面使用一个名字长度的宏,如下图
image.png
网友评论