DMA的应用是为了加快数据交互,减少CPU的占用,反而对系统功耗有好处的。而内部DMA的应用一般不会出问题的,除非该芯片不成熟。
有个暴力的方法提议一下:将1.3V提升到1.375V,也就是最大了,看看这个情况下系统的运行状态。不过要做好可能烧坏CPU的打算,毕竟超过1.2V+-10%的范围了。
示波器看看各路电源尤其是CORE部分的纹波,特别是长时间播放的过程中一定要看。用DMA和不用DMA都看看。
CPU的发热情况现在怎么样?
DMA确实是这样的,减少了CPU的战胜,加快了数据传输,降低了系统功耗。
今天实测在静音下使用DMA通道播放和使用查询方式播放(即不使用DMA),使用DMA要比使用查询方式要低几十个毫安的电流。在使用查询方式时,明显的声音出现不正常的吱吱声,占用了很大的资源,导致其他线程被占用。
坏几个CPU已经不在乎了,但是1.375V的DC-DC不太普遍,美信有这种专业级的步进电源,如果测试需从开发板上飞线。示波器也已经量过各路电压的纹波了。
现测试的几块板,只要是不用DMA方式的,一台播了一天两夜(晚12点到早6点CMMB发射台会关闭),仍然很健壮,其余的测试几台足以超过12小时的播放仍然没有问题,使用DMA的更改DMA通道会有些改善,但是仍然会有机器死机,按常理使用DMA会降低功耗,让CPU更好的去处理接收的视频流,但是偏偏采用DMA的就死机,问题很奇怪,不过从另一个角度去分析,使用DMA时音频等会更好的得到响应,所以音量明显的大,这样播出的峰值电流肯定会比查询方式的大。这里一直还不清楚原因,为什么使用DMA会死机,而采用查询的不死机?原因何在???