各位,
1.将程序放在内存中带仿真器调试,FFT的运行时间和文档《FPU_SW_LIB_UG.pdf》描述的差不多,但是把它烧在flash中带仿真器运行,这个时间相差的蛮大,时间至少长了15us左右(我把调用CFFT_f32的函数和CFFT_f32本身都指定到ramfuncs段中去运行了,#pragma CODE_SECTION(XXXXX, "ramfuncs");。为什么会有那么大的差距呢,这些关键的函数都放在RAM中运行,应该执行时间是一样的啊。
2.在FPU的库中有CFFT_f32和ICFFT_f32,但是针对实数FFT只有RFFT_f32,为什么没有IRFFT_f32呢,难道有别的函数可以代替?
谢谢!
Eric Ma:
1. 你可以检查一下函数中有哪些函数还跑在flash,然后测试一下。
2.
C:\ti\controlSUITE\libs\dsp\VCU\v2_10_00_00\examples\fft
这里有利用VCU的例程,你可以看看。
ERIC
各位,
1.将程序放在内存中带仿真器调试,FFT的运行时间和文档《FPU_SW_LIB_UG.pdf》描述的差不多,但是把它烧在flash中带仿真器运行,这个时间相差的蛮大,时间至少长了15us左右(我把调用CFFT_f32的函数和CFFT_f32本身都指定到ramfuncs段中去运行了,#pragma CODE_SECTION(XXXXX, "ramfuncs");。为什么会有那么大的差距呢,这些关键的函数都放在RAM中运行,应该执行时间是一样的啊。
2.在FPU的库中有CFFT_f32和ICFFT_f32,但是针对实数FFT只有RFFT_f32,为什么没有IRFFT_f32呢,难道有别的函数可以代替?
谢谢!
Justin mo:
回复 Eric Ma:
1.我的数据都是float形,所以用VCU不合适,看VCU的接口都是整形数进行计算的。
2.我就单单将CFFT_F32这个函数放在ramfuncs中去运行(其他程序在flash中的),实测的时间也比手册上描述的要大很多。并且我用TI 原厂的2837x_CFFT的例程来测试运行时间,在RAM版本和在flash版本,该函数的运行时间也是不同的,flash要比RAM的时间要长得多。
各位,
1.将程序放在内存中带仿真器调试,FFT的运行时间和文档《FPU_SW_LIB_UG.pdf》描述的差不多,但是把它烧在flash中带仿真器运行,这个时间相差的蛮大,时间至少长了15us左右(我把调用CFFT_f32的函数和CFFT_f32本身都指定到ramfuncs段中去运行了,#pragma CODE_SECTION(XXXXX, "ramfuncs");。为什么会有那么大的差距呢,这些关键的函数都放在RAM中运行,应该执行时间是一样的啊。
2.在FPU的库中有CFFT_f32和ICFFT_f32,但是针对实数FFT只有RFFT_f32,为什么没有IRFFT_f32呢,难道有别的函数可以代替?
谢谢!
user5196261:请问你在原程序上怎样修改的?我每次想把fft例程烧写进flash,程序都无法运行
各位,
1.将程序放在内存中带仿真器调试,FFT的运行时间和文档《FPU_SW_LIB_UG.pdf》描述的差不多,但是把它烧在flash中带仿真器运行,这个时间相差的蛮大,时间至少长了15us左右(我把调用CFFT_f32的函数和CFFT_f32本身都指定到ramfuncs段中去运行了,#pragma CODE_SECTION(XXXXX, "ramfuncs");。为什么会有那么大的差距呢,这些关键的函数都放在RAM中运行,应该执行时间是一样的啊。
2.在FPU的库中有CFFT_f32和ICFFT_f32,但是针对实数FFT只有RFFT_f32,为什么没有IRFFT_f32呢,难道有别的函数可以代替?
谢谢!
Igor An:
回复 Justin mo:
在RAM中运行和在FLASH中运行,CPU的处理时间是一样的,没有区别,但每条指令的读取时间FLASH上和RAM上是不同的。
从手册上你可以看到,FLASH的最高运行频率要比主频低不少,而RAM基本上是与主频速率相同数量级的读写速度。
所以,如果所执行的代码有在Flash上运行的,那么整体执行时间就会变长很多。