程序是用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