Bootstrap

rt1052 usb速率_【RT1052】2、rt-thread 音频驱动框架分析

上一帖子中rt-thread适配移植主要介绍了ok1052的板卡支持,但只测试了部分驱动(串口、网卡),之后测试音频的时候发现音频部分只实现了播放,录音没有实现。分析了下音频驱动部分,发现框架是完整的。本篇先从框架入手,分析一下音频驱动的工作流程。注:本章内容不只局限ok1052板卡,而是针对rt-thread系统的分析

一、首先整体框架还是比较简单的,具体见下图:

1.png (23.28 KB, 下载次数: 12)

2018-11-4 00:15 上传

1、从上图可以看到audio.c是音频设备的核心部分,起到承上启下的作用,向上为应用提供通用接口(open、read、write、control等),向下为底层驱动提供了函数(rt_audio_tx_complete、rt_audio_rx_done)及需要实现的接口(ops)

2、再来看drv_codec.c和fsl_wm8960.c,这是主控imx rt1050和音频芯片wm8960的芯片具体的驱动部分,不同板卡音频驱动主要是实现这一部分。

a、其中drv_codec.c中实现了ops的相关函数接口,并通过rt_audio_register函数注册到audio.c,相关代码如下:

const struct rt_audio_ops       _g_audio_ops =

{

.getcaps    = icodec_getcaps,

.configure  = icodec_configure,

.init       = icodec_init,

.sh

;