我是靠谱客的博主 端庄小蚂蚁,最近开发中收集的这篇文章主要介绍第三阶段应用层——2.11 视频监控—ASOC驱动框架的简单分析
视频监控—ASOC驱动框架的简单分析
,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
视频监控—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驱动框架的简单分析 - 一、ASOC框架分析
一、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_driver
与snd_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_driver
和snd_soc_codec_driver
注意:
对于machine部分指定了platform与codec部分的结构体的名字,所以在编写驱动时,需要注意三者的对应关系。
最后
以上就是端庄小蚂蚁为你收集整理的第三阶段应用层——2.11 视频监控—ASOC驱动框架的简单分析 视频监控—ASOC驱动框架的简单分析 的全部内容,希望文章能够帮你解决第三阶段应用层——2.11 视频监控—ASOC驱动框架的简单分析 视频监控—ASOC驱动框架的简单分析 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复