linuxalsa声卡驱动详细分析

linuxalsa声卡驱动详细分析

ID:32658091

大小:1.05 MB

页数:83页

时间:2019-02-14

linuxalsa声卡驱动详细分析_第1页
linuxalsa声卡驱动详细分析_第2页
linuxalsa声卡驱动详细分析_第3页
linuxalsa声卡驱动详细分析_第4页
linuxalsa声卡驱动详细分析_第5页
资源描述:

《linuxalsa声卡驱动详细分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、:LLinuxALSA声卡驱动之一:ALSA架构简介一.概述ALSA是AdvancedLinuxSoundArchitecture的缩写,目前EZ经成为了linux的主流咅频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http:〃www.alroiect.org/。App2在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,应用程序只要调用alsa-lib提供的API,即可以完成对底层音频硬件的控制。App1User空间、/alsa-libAudiohardw

2、are硬件图1.1alsa的软件体系结构由图1.1可以看出,用户空间的alsa-lib对应用程序提供统一的API接口,这样可以隐藏了驱动层的实现细节,简化了应用程序的实现难度。内核空间屮,alsa-soc其实是对alsa-driver的进一步封装,他针对嵌入式设备提供了一些列增强的功能。本系列博文仅对嵌入式系统屮的alsa-driver和alsa-soc进行讨论。二.ALSA设备文件结构我们从alsa在linux屮的设备文件结构开始我们的alsaZ旅.看看我的电脑中的alsa驱动的设备文件结构:$cd/dev/snd$ls-Icrw-rw—-+1r

3、ootaudio116,82011-02-2321:38controlCOcrw-rw-—•+1rootaudio116,42011-02-2321:38midiCODOcrw-rw—-+1rootaudio116,72011-02-2321:39pcmCODOccrw-rw-—•+1rootaudio116,62011-02-2321:56pcmCODOpcrw-rw—-+1rootaudio116,72011-02-2321:39pcmCODIccrw-rw—-+1rootaudio116,52011-02-2321:38pcmCODIpcrw

4、-rw—-+1rootaudio116,32011-02-2321:38seqcrw-rw—-+1rootaudio116,22011-02-2321:38timer$我们可以看到以下设备文件:•controlCO->用于声卡的控制,例如通道选择,混咅,麦克风的控制等•midiCODO->•pcmCODOc一〉•pcmCODOp-)•seq-)•timer-)用于播放midi咅频用于录音的pcm设备用丁•播放的pcm设备音序器定时器其中,C0D0代表的是声卡0中的设备0,pcmCODOc最后一个c代表capture,pcmCODOp最后一个p代表p

5、layback,这些都是alsa-driver的命名规则。从上面的列表可以看出,我的声卡卜•挂了6个设备,根据声卡的实际能力,驱动实际上可以挂上更多种类的设备,在include/sound/core.h屮,定义了以下设备类刑.;c-sharp]viewplaincopy1.#defineSNDRV_DEV_TOPLEVEL((_forcesnd_device_type_t)0)2.#defineSNDRV_DEV_CONTROL((_forcesnd_device_type_t)1)3・#defineSNDRV_DEV_LOIaILEVEL_PRE

6、((_forcesnd_device_type_t)2)4.#defineSNDRV_DEV_LOWLEVEL_NORMAL((_forcesnd_device_type_t)0x1000)5・#defineSNDRV_DEV_PCM0x1001)6.#defineSNDRV_DEV_RAWMIDI0x1002)7.#defineSNDRV_DEV_TIMER0x1003)((_forcesnd_device_type_t)((_forcesnd_device_type_t)((_forcesnd_device_type_t)8.#defineSN

7、DRV_DEV_SEQUENCER0x1004)9・#defineSNDRV_DEV_HWDEP0x1005)10・#defineSNDRVDEVINFO((_forcesnd_device_type_t)0x1006)11.#defineSNDRV_DEV_BUS0x1007)12.#defineSNDRV_DEV_CODEC0x1008)33・#defineSNDRV_DEV_DACK((_forcesnd_device_type_t)((_forcesnd_device_type_t)((_forcesnd_device_type_t)((_

8、forcesnd_device_type_t)((_forcesnd_device_type_t)0x1009)24・#d

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

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

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