|
引用 19 楼 hhyh612 的回复:
引用 18 楼 paulfuture 的回复:
引用 12 楼 hhyh612 的回复:
我遇到过这个问题 是DMA搬的快 CPU填的慢引起的
增加DMA Buffer的大小或者DMA链的长度可以解决这个问题
如果是CPU填的慢引起的,我有另一个问题
为什么三星2442cpu(300M)没有出现这个问题
三星6410cpu(532M)就有这个问题了呢?
CPU变快了,应该不存在这个问题才对啊,Buffer用的大小一样,用的也都是三星提供的BSP
可能2442的DMA比较慢吧
老的处理器都用单AHB架够,新的都用Multy-layer? AHB,所以可能6410的DMA搬的更快了
我觉得不是DMA快的问题,是CPU慢的问题吧?
现在关键是不知道CPU为什么这么慢
因为采用的是双Buffer结构,怀疑是DMA搬走了一个Buffer的内容,当需要搬下一个Buffer的时候,CPU还没有把数据填进去。因为DMA搬得速度本身就比CPU填的速度快,肯定是一直在等CPU,出现问题的时候,是必须要有数据,不然播放器那端就没有数据了,而此时,Buffer里面还没有数据填好,CPU的数据填充工作还没有开始或是还没有完成。我觉得是这样一个逻辑,但是,还没有想到为什么CPU会响应不过来,频率明明比2442快乐不少啊?
欢迎大家前来指点^_^ |
|