第三阶段应用层——2.11 视频监控—ASOC驱动框架的简单分析

本文深入分析了ASOC(Audio System On Chip)驱动框架,详细介绍了Machine、Soc与Codec三部分的结构与作用,强调了它们之间的对应关系,为嵌入式音频系统的开发提供了清晰的指导。

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

视频监控—ASOC驱动框架的简单分析

  • 硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)
  • 软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统
  • 开发环境:arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)
  • 源码仓库:https://gitee.com/d_1254436976/Embedded-Linux-Phase-3

目录


一、ASOC框架分析

以内核中自带的s3c24xx_uda134x.c的驱动文件为开头,去分析ASOC框架,得到如下框架图
在这里插入图片描述
如图可见,其大致结构分为三部分

  • Machine(板载硬件):指某一款机器,如:某款设备、某款开发板…,由此可以看出Machine几乎是不可重用的每个Machine上的硬件实现可能都不一样, CPU不一样, Codec不一样,音频更多的输入、输出设备也不一样,
    Machine为CPU、 Codec、输入输出设备提供了一个载体
    在这个部分,指定了platform与codec部分的设备为哪一个,其主要关键作用的是snd_soc_card以及snd_soc_dai_link
  • Soc( Platform)一般是指某一个SoC平台,比如pxaxxx,s3cxxxx,omapxxx等等,与音频相关的通常包含该SoC中的时钟、 DMA、 I2S、 PCM等等,只要指定了SoC,那么我们可以认为它会有一个对应的Platform,它只与SoC相关
    在这个部分,可以指定芯片的dai与dma,并且设置它们,其中起关键作用的是snd_soc_dai_driversnd_soc_codec_driver结构体
  • Codec:指具体的编解码器Codec里面包含了I2S接口、 D/A、 A/D、 Mixer、 PA(功放),通常包含多种输入( Mic、 Line-in、 I2S、 PCM)和多个输出(耳机、喇叭、听筒, Line-out), Codec和Platform一样,是可重用的部件,同一个Codec可以被不同的Machine使用。嵌入式Codec通常通过I2C对内部的寄存器进行控制
    在这个部分,主要是设置编解码芯片的dai与控制接口,其关键作用的结构体为snd_soc_dai_driversnd_soc_codec_driver

注意:
对于machine部分指定了platform与codec部分的结构体的名字,所以在编写驱动时,需要注意三者的对应关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值