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

C6657 ping-pong缓存问题

程序是用QDMA从DDR3传输10组数据至L2中进行10次16384点FFT计算。

优化等级设置-o3

FFT计算用的是dsplib库的DSPF_sp_fftSPxSP函数

请问各位TI工程师们,为什么我每一个程序行设置断点一步步执行完成的cycle数和理论一致,不设断点直接跑的cycle比理论多了20W。

Tao_LL:

回复 Shine:

cycle是用t_start和t_stop评估,对中间的每段代码行设置断点再resume

shuai gao:

回复 Tao_LL:

楼主您好,请问您采用的Pingpang缓存是参考的那个例程?是您自己写的还是官网提供的例程,谢谢

Tao_LL:

回复 shuai gao:

自己写的

Ryan BL:

你的各个部分的数值应该是仅计算了从入口到退出的C阶段消耗,而实际上在C入口和最后,编译器会根据接口实现做一些额外的工作,主要是栈建立和销毁,这块的消耗和你的接口所用的局部变量有关,尤其是优化后很多局部变量会用寄存器代替,可能涉及大量的寄存器保存与恢复;这个应该就是你切合的那个测试多出来的;

至于连续场景下多出来的,我有测试过bios的Hwi,按照一般配置为1000Hz,每次250 cycle的最小消耗,实际的消耗由于任务管理等系统功能,会更大,基本上都在us级,你的理论cycle将近5ms意味着将会有5次的定时器中断切换,同时运行中还可能有其他的中断打断;

使用裸跑或关掉中断应该会ok

赞(0)
未经允许不得转载:TI中文支持网 » C6657 ping-pong缓存问题
分享到: 更多 (0)