我用ccs编了一个for循环在debug模式下做了50000次浮点型乘法运算,然后配置一个IO口输出高低电平,用示波器看波形和时间,最终得到1ms可以计算9000+次乘法,是不是因为配置了IO口,要访问IO才导致速度这么慢?这时候数据应该是在RAM吧,理论上速度应该很快啊。
Shine:
请问用的是哪款芯片?哪个IO管脚,IO管脚不是都能跑到CPU的速度的。另外,代码放在片内运行的?cache有没有使能?
lin li18:
回复 Shine:
omapl138的dsp芯片C6748,开发板有4个LED灯,我看原理图是直接连在芯片引脚上的(CON4的20脚McBSP1_CLKX1/GPIO[5]),我先让一个LED处于低电平,然后进行FOR循环乘法计算,再接着让LED变为高电平,示波器探针放在灯的正极,如此直接观察低电平到高电平的时间,.gel文件并没有cache的使能,我用的ccs的emulation的debug模式,这个时候代码应该都在片内RAM把?
lin li18:
回复 lin li18:
代码好像是放在DDR里的
lin li18:
回复 Shine:
我注意到.gel文件对DDR初始化用的是156MHZ,而cpu主频是456Mhz,问题是出在这么
Tony Tang:
回复 lin li18:
问题不在这。
#1. 代码要优化,不然比较测试没意义:
http://processors.wiki.ti.com/index.php/TMS320C6000_DSP_Optimization_Workshop?keyMatch=optimization&tisearch=Search-EN
#2. 不要用GPIO来测时间,用profile:
Profiler:
http://processors.wiki.ti.com/index.php/Profiler?keyMatch=profile&tisearch=Search-EN-Everything
CCS profile clock:
http://processors.wiki.ti.com/index.php/Profile_clock_in_CCS