ASOC全解析
文章平均质量分 92
芯心智库
一枚嵌入式Linux工程师~往嵌入式Linux移植与驱动方向发展,欢迎关注评论
展开
-
【ASOC全解析(五)】编译测试与验证
可以观察到两个文件均能正常听到声音,其中文件"mycap.wav"是开始录音时的录音文件,“playback.pcm"文件则是从播放开始到结束(或者从播放开始到手动让播放结束)的音频文件。对于衍生Linux系统(例如Ubuntu 、CentOS等),百度上有很多参考的文章去编译文件和测试,安卓是基于Linux内核的,故衍生Linux系统的编译和测试通常没有安卓系统的复杂,本文不阐述衍生Linux系统的编译与测试。以安卓系统为例进行编译与测试,其中Linux Kernel的版本号为5.10。原创 2024-01-23 21:25:26 · 434 阅读 · 0 评论 -
【ASOC全解析(四)】platform驱动解析与实践
ASOC中的platform驱动程序专门针对SoC(System on Chip)CPU,并且不包含任何特定于板(board-specific)的代码。其可分为音频DMA驱动程序、SoC DAI驱动程序和 DSP驱动程序。这三个驱动程序分别承担以下的作用:音频DMA驱动程序:负责音频数据的直接内存访问(DMA)传输。SoC DAI驱动程序:负责数字音频接口(DAI)的配置和管理。SoC DSP驱动程序:负责数字信号处理器(DSP)的功能,包括混音控制、DMA IO、定义DSP前端PCM设备等。原创 2024-01-23 21:22:29 · 844 阅读 · 0 评论 -
【ASOC全解析(三)】machine原理和实战
在ASOC中,Machine层,也称为“机器层”或“板级层”,是ASoC架构中负责将Codec和Platform层连接起来的部分。它是ASoC中与硬件平台相关的部分,通常包含了特定于机器(如开发板或产品)的音频路由和控制逻辑。},//最终展开是:},其它说明* ...* };* ...* };* ...* };* ...* };*/原创 2024-01-23 21:14:05 · 819 阅读 · 0 评论 -
【ASOC全解析(二)】codec驱动解析与实践
此外,它还可以包含用于初始化和关闭codec的回调函数。struct snd_soc_dai_driver *dai_drv: 这个参数是一个指向snd_soc_dai_driver结构体的指针,它代表了数字音频接口(DAI)的驱动程序。有些codec驱动程序可能用的是devm_snd_soc_register_component函数去调用,但是其实devm_snd_soc_register_component函数也是调用snd_soc_register_component函数去完成的相关操作。原创 2024-01-23 21:09:36 · 1096 阅读 · 0 评论 -
【ASOC全解析(一)】ASOC架构简介和欲解决的问题
在没有推出音频框架之前,我们一般用字符型设备驱动来定义设备上的音频设备。问题1:编解码器驱动程序通常与底层 SoC CPU 紧密耦合。例如音频有关产品需要音频外设厂商与CPU/SOC厂商紧密合作来完成音频设备驱动问题2:用户与硬件交互麻烦,例如需要调节喇叭音量则可能要完成相关的驱动程序或者向用户提供API接口,故不同厂商的实现方式都有很大区别问题3:耗电量高,通过通过节点就直接打开了音频外设(上电),没有尽可能的减少耗电量。原创 2024-01-23 21:02:49 · 1355 阅读 · 0 评论