OpenHarmony音频驱动介绍

本文档介绍了OpenHarmony的音频驱动框架ADM,该框架为多媒体音频子系统提供服务,并简化设备厂商的驱动开发。主要包含codec、DMA和IIS三个模块,每个模块都有对应的驱动入口和注册接口。codec模块负责数模转换,SOC模块实现数据搬运,DAI模块处理数据传输。系统启动后,三个模块通过AudioRegisterCodec、AudioSocRegisterPlatform和AudioSocRegisterDai接口注册到声卡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenHarmony官方音频驱动介绍文档路径
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-peripherals-audio-des.md

OpenHarmony 音频驱动框架ADM(Audio Driver Model)音频驱动框架模型,,向上服务于多媒体音频子系统,便于系统开发者能够更便捷的根据场景来开发应用。向下服务于具体的设备厂商,对于Codec和DSP设备厂商来说,可根据ADM模块提供的向下统一接口适配各自的驱动代码,就可以实现快速开发和适配OpenHarmony系统。
ADM驱动框架向下,提供了codec驱动,DMA驱动,IIS驱动的统一调用接口方便驱动的适配。
音频驱动分为三大模块:codec模块, soc模块, dai模块;
codec模块,负责数模转换。
SOC模块,实现dma的驱动,负责数据搬运。
dai模块,实现IIS驱动,负责数据传输。

codec驱动入口:

/* HdfDriverEntry definitions */
struct HdfDriverEntry g_codecDriverEntry = {
    .moduleVersion = 1,
    .moduleName = "CODEC_HI3516",
    .Bind = CodecDriverBind,
    .Init = CodecDriverInit,
    .Release = CodecDriverRelease,
};
HDF_INIT(g_codecDriverEntry);

DMA驱动入口:

/* HdfDriverEntry definitions */
struct HdfDriverEntry g_platformDriverEntry = {
    .moduleVersion = 1,
    .moduleName = "DMA_HI3516",
    .Bind = Hi3516DmaDriverBind,
    .Init = Hi3516DmaDriverInit,
    .Release = Hi3516DmaDriverRelease,
};
HDF_INIT(g_platformDriverEntry);

IIS驱动入口:

/* HdfDriverEntry definitions */
struct HdfDriverEntry g_daiDriverEntry = {
    .moduleVersion = 1,
    .moduleName = "DAI_HI3516",
    .Bind = DaiDriverBind,
    .Init = DaiDriverInit,
    .Release = DaiDriverRelease,
};
HDF_INIT(g_daiDriverEntry);

系统启动后着三个模块分别调用各自的注册接口将自己注册到声卡中:
codec模块调用:AudioRegisterCodec注册接口。

dam 模块调用:AudioSocRegisterPlatform注册接口。

dai模块调用:AudioSocRegisterDai注册接口。


后续不断更新。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天夏已微凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值