程序一运行到snd_pcm_writei函数的定义 就发生了段错误

 我对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相关的错误寄存器。错误中断需要使能才会触发

    如果我的回答解决了你的问题,请确认谢谢!

}

我要回帖

更多关于 和函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信