做简历哪个网站比较好网站建设免费维护
news/
2025/9/24 7:39:10/
文章来源:
做简历哪个网站比较好,网站建设免费维护,小程序免费制作平台,广告设计公司排行参考博客#xff1a; https://blog.csdn.net/DroidPhone/article/details/7165482 #xff08;一下内容基本是原博主的博客转载#xff09; 文章目录 一、ASOC的由来二、硬件架构三、软件架构四、数据结构五、内核对ASoC的改进 一、ASOC的由来
ASoC–ALSA System on Chip …参考博客 https://blog.csdn.net/DroidPhone/article/details/7165482 一下内容基本是原博主的博客转载 文章目录 一、ASOC的由来二、硬件架构三、软件架构四、数据结构五、内核对ASoC的改进 一、ASOC的由来
ASoC–ALSA System on Chip 是建立在标准ALSA驱动层上为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前内核对于SoC中的音频已经有部分的支持不过会有一些局限性 过去
Codec驱动与SoC CPU的底层耦合过于紧密这种不理想会导致代码的重复例如仅是wm8731的驱动当时Linux中有分别针对4个平台的驱动代码。音频事件没有标准的方法来通知用户例如耳机、麦克风的插拔和检测这些事件在移动设备中是非常普通的而且通常都需要特定于机器的代码进行重新对音频路劲进行配置。当进行播放或录音时驱动会让整个codec处于上电状态这对于PC没问题但对于移动设备来说这意味着浪费大量的电量。同时也不支持通过改变过取样频率和偏置电流来达到省电的目的
二、硬件架构 Machine 是指某一款机器可以是某款设备某款开发板又或者是某款智能手机由此可以看出Machine几乎是不可重用的每个Machine上的硬件实现可能都不一样CPU不一样Codec不一样音频的输入、输出设备也不一样Machine为CPU、Codec、输入输出设备提供了一个载体。Platform 一般是指某一个SoC平台比如pxaxxx,s3cxxxx,omapxxx等等与音频相关的通常包含该SoC中的时钟、DMA、I2S、PCM等等只要指定了SoC那么我们可以认为它会有一个对应的Platform它只与SoC相关与Machine无关这样我们就可以把Platform抽象出来使得同一款SoC不用做任何的改动就可以用在不同的Machine中。实际上把Platform认为是某个SoC更好理解。Codec 字面上的意思就是编解码器Codec里面包含了I2S接口、D/A、A/D、Mixer、PA功放通常包含多种输入Mic、Line-in、I2S、PCM和多个输出耳机、喇叭、听筒Line-outCodec和Platform一样是可重用的部件同一个Codec可以被不同的Machine使用。嵌入式Codec通常通过I2C对内部的寄存器进行控制。
三、软件架构
Codec驱动 ASoC中的一个重要设计原则就是要求Codec驱动是平台无关的它包含了一些音频的控件Controls音频接口DAMP动态音频电源管理的定义和某些Codec IO功能。为了保证硬件无关性任何特定于平台和机器的代码都要移到Platform和Machine驱动中。所有的Codec驱动都要提供以下特性 Codec DAI 和 PCM的配置信息 Codec的IO控制方式I2CSPI等 Mixer和其他的音频控件 Codec的ALSA音频操作接口
必要时也可以提供以下功能 DAPM描述信息 DAPM事件处理程序 DAC数字静音控制 Platform驱动 它包含了该SoC平台的音频DMA和音频接口的配置和控制I2SPCMAC97等等它也不能包含任何与板子或机器相关的代码。 Machine驱动 Machine驱动负责处理机器特有的一些控件和音频事件例如当播放音频时需要先行打开一个放大器单独的Platform和Codec驱动是不能工作的它必须由Machine驱动把它们结合在一起才能完成整个设备的音频处理工作。
四、数据结构 ASoC把声卡实现为一个Platform Device然后利用Platform_device结构中的dev字段dev.drvdata它实际上指向一个snd_soc_device结构。可以认为snd_soc_device是整个ASoC数据结构的根本由他开始引出一系列的数据结构用于表述音频的各种特性和功能。snd_soc_device结构引出了snd_soc_card和soc_codec_device两个结构然后snd_soc_card又引出了snd_soc_platform、snd_soc_dai_link和snd_soc_codec结构。如上所述ASoC被划分为Machine、Platform和Codec三大部分如果从这些数据结构看来snd_codec_device和snd_soc_card代表着Machine驱动snd_soc_platform则代表着Platform驱动snd_soc_codec和soc_codec_device则代表了Codec驱动而snd_soc_dai_link则负责连接Platform和Codec。
五、内核对ASoC的改进 由上图我们可以看出3.0中的数据结构更为合理和清晰取消了snd_soc_device结构直接用snd_soc_card取代了它并且强化了snd_soc_pcm_runtime的作用同时还增加了另外两个数据结构snd_soc_codec_driver和snd_soc_platform_driver用于明确代表Codec驱动和Platform驱动。
后续的章节中将会逐一介绍Machine和Platform以及Codec驱动的工作细节和关联
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915224.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!