Part Number:TMS320C6727B
使用这款型号的DSP与FPGA通过EMIF接口进行通信,现在经过测试,得到如下结果:
1.DSP进行连续16个32位数据的读操作,一共用时约22us,但是经过配置好的寄存器进行计算,该时间最多为4us,也就是说有很多时间浪费。
2.DSP进行连续16个32位数据的写操作,一共用时约11us,但是经过配置好的寄存器进行计算,该时间最多为4us,也就是说有很多时间浪费。
我想问一下,这个连续读/连续写操作的时间,除了与寄存器配置的时序有关,与EMIF的时钟频率有关,还和其他什么因素有关,怎样可以降低这个时间?
Shine:
EMIF clock最大时钟是100MHz。您可以尝试用EDMA从EMIF搬移数据。
,
Jack Chen:
我查阅了以下C6727B的手册,您说的EDMA就是dMAX吧。
还有,我想问一下,代码运行的时间除了和CPU频率有关,还和什么有关?我用atan2计算一个反正切需要5us以上,时间有点久。
谢谢您的回答。
,
Shine:
还和数据/代码是在片外还是片内有关,一般提高代码执行时间的方法:对代码的优化(打开-O3优化选项),打开cache,使用DMA搬移数据。
,
Jack Chen:
好的,十分感谢。
-O3优化选项这个我找到了,打开cache这个在哪里设置呢?
,
Shine:
请看下面的帖子。https://e2e.ti.com/support/processors-group/processors/f/processors-forum/41036/how-to-enable-cache-on-the-c6727
,
Jack Chen:
好,我试一下cache,谢谢你。
打开-O3优化选项是会对代码有影响吗?我不优化的时候可以正常运行,但是选择O3优化之后,就无法正常运行了,换成O2我试过了也不行。
,
Shine:
有些底层的变量需要用volatile关键字定义,防止被优化掉。