TI中文支持网
TI专业的中文技术问题搜集分享网站

C6748 EDMA优先级

在使用EDMA时,发现使用memcpy(使用直接赋值效果一样)拷贝数据时会打断EDMA接收I2S数据,我认为是CPU占用了系统总线,MSTPRI1 寄存器已经将EDMA的优先级调整为0,但是还是不行,我想知道CPU的优先级如何降低

xinpeng wang:

Tony Tang:

回复 xinpeng wang:

memcopy与EDMA共用的内存是哪一块?DDR上吗?

给几点建议:

#1. 将这两个操作的内存位置分开,原因是共同访问一块内存,排队等待延时了。比如一个放DDR,一个Shareram或L2 RAM.

#2. 如果是DDR上,更改一下DDR的PBBPR寄存器的配置。详细说明看TRM手册对PBBPR的说明。

xinpeng wang:

回复 Tony Tang:

这个只能是同一块内存,因为就是在拷贝DMA读取来的数据到另一个地方,确实是在DDR上,我先试试改PBBPR试试

xinpeng wang:

回复 Tony Tang:

PBBPR试过了,改成0 、2、0xFF都试过了,不行,还是那效果。若要是注释掉memcpy下面为零的部分将有正常数值

xinpeng wang:

回复 Tony Tang:

1.缩短短memcpy长度明显改善,我一共是4096个字节的,变成100字节后就完全好了。
2.EDMA代替我回头试试吧,就是比较慢这个方法。
3.FIFO一开始就已经在用了。

Tony Tang:

回复 xinpeng wang:

FIFO深度设置的是多少?

xinpeng wang:

回复 Tony Tang:

FIFO深度是1,改成其他值就不能用了,我设置了一下优化等级好像可以了,谢谢啦

赞(0)
未经允许不得转载:TI中文支持网 » C6748 EDMA优先级
分享到: 更多 (0)