当前位置:   article > 正文

OpenHarmony系统驱动HDF框架驱动介绍_device_info.hcs

device_info.hcs

OpenHarmony系统驱动实现流程

  1. 在device_info.hcs文件配置驱动信息,相当于dts树。
			device0 :: deviceNode {
                    policy = 2;
                    priority = 60;
                    preload = 0;
                    permission = 0666;
                    moduleName = "HDF_AUDIO";
                    deviceMatchAttr = "hdf_audio_driver_0";
                    serviceName = "hdf_audio_codec_primary_dev0";
                }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

policy:服务策略,控制对谁提供驱动服务
moduleName 这个名称和驱动实现的HdfDriverEntry 结构体中的moduleName 相同。
deviceMatchAttr :驱动的私有配置信息。
serviceName :这个是服务名称,最终会在/dev/节点下生成serviceName 的节点(生成节点的前提条件policy 配置为大于等于1)。
2. 实现与device_info.hcs文件中配置moduleName匹配的驱动

/* HdfDriverEntry definitions */
struct HdfDriverEntry g_audioDriverEntry = {
    .moduleVersion = 1,
    .moduleName = "HDF_AUDIO",
    .Bind = AudioDriverBind,
    .Init = AudioDriverInit,
    .Release = AudioDriverRelease,
};
HDF_INIT(g_audioDriverEntry);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

当g_audioDriverEntry中的moduleName 和device_info.hcs文件中的配置信息相同时,系统启动时就会执行Bind 函数,当Bind 函数执行成功时就会接着执行Init 函数。
当Bind 函数或和Init 执行失败时,系统会执行Release 函数。
Bind 函数内部实现服务的绑定。
Init 函数内部实现驱动模块的初始化。
Release 函数内部实现内存的释放。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/246620
推荐阅读
相关标签
  

闽ICP备14008679号