我对ALSA录音和播音的理解当我们通过麦克风讲话的声音搜集到声卡里之后,内存从声卡里读取声音数据的过程就是录音过程即snd_pcm_readi()函数的定义的执行,把内存中的聲音数据写入到声卡的过程就是播音过程即snd_pcm_writei()函数的定义的执行。
我使用8127播放音频时大约播了2000多條后,程序就会阻塞在snd_pcm_writei函数的定义中从而导致整个线程阻塞住,打开声卡的调试信息发现snd_pcm_writei阻塞的时候,不会进入davinci_pcm_dma_irq这个中断中正常播放的时候可以进入davinci_pcm_dma_irq,请问进不了davinci_pcm_dma_irq中是说明DMA拷贝失败了吗?
EDMA失败有可能是访问的地址非法或者访问的地址不可用。你能否检查一下EDMA的源哋址和目的地址么
如果我的回答解决了你的问题,请确认谢谢!
好的,我再加上打印看看谢谢。另外请问DMA失败之后,不产生中断嗎
那DMA失败,不会产生中断吗
请检查EDMA相关的错误寄存器。错误中断需要使能才会触发
如果我的回答解决了你的问题,请确认谢谢!
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。