OpenHarmony实战:硬件适配之HCS应用

一、HCS 配置管理

HCS(HDF Configuration Source)是 HDF 驱动框架的配置描述参数文件,内容以 Key-Value 为主要形式。它实现了配置代码与驱动代码解耦,便于开发者进行配置管理。 HC-GEN(HDF Configuration Generator)是 HCS 配置转换工具,可以将 HDF 配置文件转换为软件可读取的文件格式。本文不涉及 HC-GEN,假设我们配置好 HCS, 利用其给定的接口可以访问对应设备节点的参数。

HCS 和硬件板卡直接相关,服务于 HDF 驱动框架。下面以一个模拟耳机插拔检测的驱动程序为例,从开发的角度逐步展开说明。

二、应用举例

第一步,找到 HDF 系统相关总入口 hdf.hcs 文件,在 audio 位置新增加 audio/analog_headset_config.hcs 参数文件,系统在加载的时候会读取该参数文件。

.\vendor\hihope\rk3568\hdf_config\khdf\hdf.hcs

#include "device_info/device_info.hcs"
......
#include "audio/audio_config.hcs"
#include "audio/codec_config.hcs"
#include "audio/dai_config.hcs"
#include "audio/dma_config.hcs"
#include "audio/dsp_config.hcs"
#include "audio/analog_headset_config.hcs" // 新增加文件
......
#include "lcd/lcd_config.hcs"

root {
    module = "rockchip,rk3568_chip";
}

第二步,新增加的文件放到对应子模块的目录下

headset_info 就是耳机插拔检测用到的硬件信息,关键是 headset_gpio

.\vendor\hihope\rk3568\hdf_config\khdf\audio\analog_headset_config.hcs
root {
    platform {
        template headset_info {
            match_attr = "";
            serviceName = "";
        }
        headset :: headset_info {
            match_attr = "analog_headset_attr";
            serviceName = "analog_headset_service";
            vendor = 0x0001;
            product = 0x0001;
            version = 0x0100;
            dev_name = "rk809_analog_headset";
            headset_gpio = 115;
            headset_gpio_flag = 0;
            mic_switch_gpio = 0;
            hp_mic_io_value = 0;
            main_mic_io_value = 1;
            headset_wakeup = 1;
            hook_gpio = 0;
            adc_controller_no = 0;
            adc_channel = 0;
            hook_down_type = 0;
        }
    }
}

第三步,这个功能需要在 audio 关键模块加载之后加载

在 device_info.hcs 中找到 audio::host 主机节点,配置好服务策略、优先级、加载策略(按时还是按需)、模块名称为驱动加载的名称,服务名称则指向 analog_headset_config.hcs 中的服务名称。模块名称错误驱动程序将不会被加载,服务名称错误则读取参数失败,可能导致驱动程序异常。
关于服务策略、优先级、加载策略在后面描述。

.\vendor\hihope\rk3568\hdf_config\khdf\device_info\device_info.hcs
audio :: host {
    hostName = "audio_host";
    priority = 110;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>