ALSA driver---DPCM】的更多相关文章

https://blog.csdn.net/zyuanyun/article/details/59180272#t6 1.Card For each soundcard, a “card” record must be allocated. A card record is the headquarters of the soundcard. It manages the whole list of devices (components) on the soundcard, such as P…
前面已经写过PCM 实例的创建框架,我们现在来看看PCM 实例是如何创建的. 在调用snd_pcm_new时就会创建一个snd_pcm类型的PCM 实例. struct snd_pcm { struct snd_card *card;//PCM device 说挂载的声卡 struct list_head list;//一个Card可能有多个PCM 实例,PCM 实例列表 int device; /* device number *///PCM 实例的索引 unsigned int info_f…
https://www.kernel.org/doc/html/v4.11/sound/soc/dpcm.html Description Dynamic PCM allows an ALSA PCM device to digitally route its PCM audio to various digital endpoints during the PCM stream runtime. e.g. PCM0 can route digital audio to I2S DAI0, I2…
对于playback snd_pcm_begin snd_pcm_commit, 貌似 commit给的frame才会使得alsa去把数据填充 转自 http://magodo.github.io/ Zhaoting's Blog About ALSA - PCM接口 Apr 14, 2016 Table of Content 0. PCM 1. 概述 1.1 PCM设备的两种类型 1.2 PCM设备和ALSA应用的ring buffer 1.2.1 ring buffer - 单位(perio…
一.内核文档  Linux Sound Subsystem Documentation 二.一些API 1.snd_pcm_period_elapsed 2.snd_pcm_lib_buffer_bytes 3.snd_pcm_capture_avail 4.params_channels 5.snd_compr_ops 6.snd_soc_add_component_controls 7.snd_soc_add_codec_controls 8.snd_soc_add_platform_con…
1.调试 (1)把程序拷贝到服务器上进行编译 (2)把程序放到内核上面去 重新配置内核,吧原来的声卡驱动程序去掉 a. 修改语法错误 11th_myalsa b. 配置内核去掉原来的声卡驱动 -> Device Drivers   -> Sound card support     -> Advanced Linux Sound Architecture        -> ALSA for SoC audio support               c. 使用新内核启动 d.…
1.  Platform驱动在ASoC中的作用 前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号.在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_platform_driver和snd_soc_dai_driver.其中,platform_driver负责…
(注意:内核上电的时候会把一些没运行的控制器模块的时钟都关掉,所有在写驱动的时候需要在使用的使用使用clk_get和clk_enable使能时钟) (说明:与ALSA声卡对应的是OSS架构,第二期视频中的声卡驱动就是指的OSS架构驱动,ALSA可以模拟OSS) (amixer controls执行后返回的可设置属性里面input mux表示录音的时候的通道,在mini2440和tq2440上两者不同,需要修改) 1.裸板WAV文件格式:http://blog.chinaunix.net/uid-…
https://blog.csdn.net/zyuanyun/article/details/59170418 ALSA Asoc框架如下图: Asoc分为machine,platform,codec三大模块.关于machine,platform,codec的介绍参考自这里http://blog.csdn.net/droidphone/article/details/7165482 Machine  是指某一款机器,可以是某款设备,某款开发板,又或者是某款智能手机,由此可以看出Machine几乎…
当app在调用snd_pcm_writei时,alsa core将app传来的数据搬到HW buffer(即DMA buffer)中,alsa driver从HW buffer中读取数据传输到硬件播放. ALSA buffer是采用ring buffer来实现的.ring buffer有多个HW buffer组成. HW buffer一般是在alsa driver的hw_params函数中分配的一块大小为buffer size的DMA buffer. 之所以采用多个HW buffer来组成rin…