l  下载alsa-utils, alsa-lib, 版本要一致 http://www.alsa-project.org/main/index.php/Download l  编译alsa-lib ./configure --host=arm-none-linux-gnueabi --disable-python --prefix=/usr/share/arm-alsa/ 如果出现下列错误信息,--disable-pyhont collect2: ld returned 1 exit statu…
本节学习目的 1)分析Linux中的OSS声卡系统 2)移植wm9876声卡 3)使用madplay应用程序播放mp3 1.声音三要素 采样频率 音频采样率是指录音设备在一秒钟内对声音信号的采样次数, 常用的采样率有: 8KHz      - 电话所用采样率, 对于人的说话已经足够清除 22.05KHz - 无线电广播所用采样率 32KHz   -  miniDV 数码视频.DAT所用采样率 44.1KHz - 音频 CD, 也常用于 MPEG-1 音频(VCD, SVCD, MP3)所用采样率…
(注意:内核上电的时候会把一些没运行的控制器模块的时钟都关掉,所有在写驱动的时候需要在使用的使用使用clk_get和clk_enable使能时钟) (说明:与ALSA声卡对应的是OSS架构,第二期视频中的声卡驱动就是指的OSS架构驱动,ALSA可以模拟OSS) (amixer controls执行后返回的可设置属性里面input mux表示录音的时候的通道,在mini2440和tq2440上两者不同,需要修改) 1.裸板WAV文件格式:http://blog.chinaunix.net/uid-…
学习目标:1. WM9876接口和工作原理:2. WM9876驱动移植:3. WM9876应用测试:4. 问题总结 1. WM9876接口和工作原理  本节使用了JZ2440开发板移植WM9876驱动,其结构如下图所示,最后利用madplay工具测试音频文件. IIS和控制接口: WM9876声卡是负责录音.播音.调节音量和声音合成等的一种多媒体板卡.包括两种接口:IIS接口(提供音频接收和发送).控制接口(控制音量大小,使能各个输出通道等) 1)当我们播放声音时,将数字信号传入I2SDO脚,声…
一.首先介绍一下什么是ALSA : Advanced Linux Sound Architecture 的简称为 ALSA ,译成中文的意思是先进的Linux声音架构(这是google翻译的):一谈到架构就有点范围太大了,所以ALSA不仅仅是包括对声卡的支持和驱动: ALSA具有如下特征: 1.对所有音频接口的高效支持,从普通用户的声卡到专业级别多路音频设备: 2.声卡驱动完全模块化设计: 3.SMP and thread-safe design. 4.开发库(alsa-lib) 为程序设计提供…
设计dapm的主要目的之一,就是希望声卡上的各种部件的电源按需分配,需要的就上电,不需要的就下电,使得整个音频系统总是处于最小的耗电状态,最主要的就是,这一切对用户空间的应用程序是透明的,也就是说,用户空间的应用程序无需关心那个部件何时需要电源,它只要按需要设定好音频路径,播放音频数据,暂停或停止,dapm框架会根据音频路径,完美地对各种部件的电源进行控制,而且精确地按某种顺序进行,防止上下电过程中产生不必要的pop-pop声.这就是本章我们需要讨论的内容. /*****************…
上一节中,介绍了DAPM框架中几个重要的数据结构:snd_soc_dapm_widget,snd_soc_dapm_path,snd_soc_dapm_route.其中snd_soc_dapm_path无需我们自己定义,它会在注册snd_soc_dapm_route时动态地生成,但是对于系统中的widget和route,我们是需要自己进行定义的,另外,widget所包含的kcontrol与普通的kcontrol有所不同,它们的定义方法与标准的kcontrol也有所不同.本节的内容我将会介绍如何使…
1. struct snd_card 1.1. snd_card是什么 snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体.正因为如此,本节中,我们也从 struct cnd_card开始吧. 1.2. snd_card的定义 snd_card的定义位于改头文件中:include/sound/core.h /* main stru…
声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢! 一.  概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/. 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,应用程序只…
前面的六篇文章,我们已经讨论了dapm关于动态电源管理的有关知识,包括widget的创建和初始化,widget之间的连接以及widget的上下电顺序等等.本章我们准备讨论dapm框架中的另一个机制:事件机制.通过dapm事件机制,widget可以对它所关心的dapm事件做出反应,这种机制对于扩充widget的能力非常有用,例如,对于那些位于codec之外的widget,好像喇叭功放.外部的前置放大器等等,由于不是使用codec内部的寄存器进行电源控制,我们就必须利用dapm的事件机制,获得相应的…