Linux_ALSA声卡驱动原理分析.pdf

Linux_ALSA声卡驱动原理分析.pdf

ID:54368849

大小:649.64 KB

页数:40页

时间:2020-04-29

Linux_ALSA声卡驱动原理分析.pdf_第1页
Linux_ALSA声卡驱动原理分析.pdf_第2页
Linux_ALSA声卡驱动原理分析.pdf_第3页
Linux_ALSA声卡驱动原理分析.pdf_第4页
Linux_ALSA声卡驱动原理分析.pdf_第5页
资源描述:

《Linux_ALSA声卡驱动原理分析.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、LinuxALSA声卡驱动原理分析-设备打开过程和数据流程11/12/2011目录一、导读二、ALSA架构简介三、准备工作四、设备打开过程和数据流程i.整体分析ii.设备驱动程序insmod流程图iii.应用程序主流程图iv.声卡打开流程图v.数据写入流程图五、ALSA其它形式的数据写入方法流程图11/12/2011目录一、导读二、ALSA架构简介三、准备工作四、设备打开过程和数据流程i.整体分析ii.设备驱动程序insmod流程图iii.应用程序主流程图iv.声卡打开流程图v.数据写入流程图五、ALS

2、A其它形式的数据写入方法流程图11/12/2011一、导读本文主要针对ALSA声卡硬件驱动,从应用程序的角度展示了从用户层到内核层再到硬件驱动程序控制声卡硬件的过程。主要包括insmod、声卡打开、数据写入三个流程。rmmod和声卡关闭的流程与insmod、声卡打开类似,本文没有描述。ALSA的其他部分如控制、录音等,不在本文叙述范围内。其中的insmod是系统初始化时或手动加载,不需要具体的应用程序参与。具体到硬件,使用的是ENS1371芯片,关于最小化的ENS1371芯片驱动程序,可以参考《Linu

3、xALSA声卡驱动开发最佳实践.pptx》。11/12/2011目录一、导读二、ALSA架构简介三、准备工作四、设备打开过程和数据流程i.整体分析ii.设备驱动程序insmod流程图iii.应用程序主流程图iv.声卡打开流程图v.数据写入流程图五、ALSA其它形式的数据写入方法流程图11/12/2011二、ALSA架构简介1.ALSA是AdvancedLinuxSoundArchitecture,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(MusicalInstrumen

4、tDigitalInterface,音乐设备数字化接口)的支持。它包含API库和工具、内核驱动集合,对Linux声音进行支持。ALSA包含一系列内核驱动对不同的声卡进行支持,还提供了libasound的API库。用这些进行写程序不需要打开设备等操作,所以编程人员在写程序的时候不会被底层的东西困扰。2.ALSA自带的应用程序是alsa-utils工具包,包括aplay、alsamixer等。aplay用于在ASLA上播放音频。alsamixer用于改变音频信号的音量。3.alsa-lib是用户空间的函数库

5、,提供了libasound.so给应用程序使用,应用程序应包含头文件asoundlib.h。这个库通过提供封装函数(ALSA-API),使ALSA应用程序不需要涉及具体硬件,编写起来更容易。alsa-lib中有control,timer,dmix,pcm等,都是以插件(plugin)的形式存在的。alsa-lib通过硬件访问层的系统调用与内核层进行交互。4.alsa-driver是音频设备的alsa内核部分的驱动。集成在内核里面,大多是以模块的方式存在。可分为三层。(1)最底层是硬件操控层,负责实现硬件

6、操纵访问的功能,这也是声卡驱动程序中用户需实现的主要部分;(2)中间层是ASLA驱动的核心部分,它由各种功能的音频设备组件构成,为用户提供了一些预定义组件(如PCM、AC97、音序器和控制器等),另外用户也可以自行定义设备组件;(3)驱动的最上层是声卡对象描述层,它是声卡硬件的抽象描述,内核通过这些描述可以得知该声卡硬件的功能、设备组件和操作方法等。11/12/2011二、ALSA架构简介左图是从代码的角度体现了alsa-lib和alsa-driver及hardware的交互关系。用户层的alsa-li

7、b通过操作alsa-driver创建的设备文件/dev/snd/pcmC0D0p等对内核层进行访问。内核层的alsa-drivier驱动再经由soundcore对硬件声卡芯片进行访问。从而实现了appalsa-libalsa-driverhardware的操作。图中右上角OSS相关部分是为了兼容OSS驱动模型而存在的。不是本实践的相关部分。11/12/2011目录一、导读二、ALSA架构简介三、准备工作四、设备打开过程和数据流程i.整体分析ii.设备驱动程序insmod流程图iii.应用程序主流程图iv

8、.声卡打开流程图v.数据写入流程图五、ALSA其它形式的数据写入方法流程图11/12/2011三、准备工作为了更有效的跟踪ALSA的流程,需要在开始前进行一些准备工作,这包括用户层ALSA-lib库的调试方法和文档生成。alsa-driver的调试方法参见《Linux基础培训(2)-驱动开发最佳实践-1.pptx》。对调用流程和数据流程进行分析时,这部分内容起到辅助作用。1.ALSA-lib调试方法alsa-utils中的aplay程序可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。