第三期 alsa驱动 裸板
1 dma 传输没有速度
2 dma 传输到 FIFO地址上,然后i2s发送到芯片上
那么如果 dma 传输速大于 i2s ,那么后面传输的数据就会覆盖前面的数据,导致数据丢失。
如果dma 传输速度小于 i2s,那么会重复发送很多数据!
那么怎么设置dma 传输到 FIFO的速度呢?
这个问题的实质不是DMA传到FIFO的速度,
对于播放声音:FIFO里的数据量少于某个阈值时,它就会申请DMA传输写入数据。
对于录音:FIFO的存够数据时就会申请DMA传输,把数据取走。
根本不存在控制DMA速度的问题,而是FIFO的阈值设置、程序能否及时提供数据、取走数据
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!