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

tms320f28335 fpu_fastRTS使用

使用28335进行long double类型的运算,燒写进flash运行,已经参考例程将flash中代码copy到RAM中运行,但运行时间比debug时时间长了很多,不能满足设计要求。

问题1:为何将flash代码copy到RAM中运行时间与debug在RAM中运行时间相差很大,3ms与45ms的差别?

问题2:使用了fpu_fastRTS库,运算时间仍然不变,应该怎么办。以下是编译生成的.map文件,好像并没有使用fastRTS库。

希望尽快得到解答,谢谢!

SECTION ALLOCATION MAP

output attributes/
section page origin length input sections
——– —- ———- ———- —————-
.pinit 0 00300000 00000000 UNINITIALIZED

.text 0 00300000 00001c4d 00300000 00000fc4 example36_AIC32_2.obj (.text)
00300fc4 00000372 DSP2833x_DefaultIsr.obj (.text:retain)
00301336 0000018f DSP2833x_Mcbsp1.obj (.text)
003014c5 000000fa DSP2833x_Xintf.obj (.text)
003015bf 000000f4 DSP2833x_SysCtrl.obj (.text)
003016b3 0000009c rts2800_fpu32.lib : fd_add.obj (.text)
0030174f 0000008b : fd_div.obj (.text)
003017da 00000083 : fd_mpy.obj (.text)
0030185d 00000068 : exp.obj (.text)
003018c5 0000005d example36_AIC32_2.obj (.text:retain)
00301922 0000005a rts2800_fpu32.lib : pow.obj (.text)
0030197c 00000050 : _log.obj (.text)
003019cc 00000046 : boot.obj (.text)
00301a12 00000036 AIC23.obj (.text)
00301a48 00000031 rts2800_fpu32.lib : ldexp.obj (.text)
00301a79 0000002b DSP2833x_Spi.obj (.text)
00301aa4 0000002a rts2800_fpu32.lib : fd_cmp.obj (.text)
00301ace 00000028 DSP2833x_PieCtrl.obj (.text)
00301af6 00000023 rts2800_fpu32.lib : fd_tofs.obj (.text)
00301b19 00000022 DSP2833x_PieVect.obj (.text)
00301b3b 00000022 rts2800_fpu32.lib : i_div.obj (.text)
00301b5d 0000001d : i_tofd.obj (.text)
00301b7a 0000001c : fs_tofd.obj (.text)
00301b96 00000019 : args_main.obj (.text)
00301baf 00000019 : exit.obj (.text)
00301bc8 00000019 rts2800_fpu32_fast_supplement.lib : div_f32.obj (.text)
00301be1 00000017 DSP2833x_I2C.obj (.text)
00301bf8 00000017 DSP2833x_MemCopy.obj (.text)
00301c0f 00000016 rts2800_fpu32.lib : frexp.obj (.text)
00301c25 0000000e : fd_sub.obj (.text)
00301c33 00000009 : _lock.obj (.text)
00301c3c 00000009 : fd_neg.obj (.text)
00301c45 00000008 DSP2833x_CodeStartBranch.obj (.text)

ramfuncs 0 00301c4d 0000001f RUN ADDR = 00008000
00301c4d 0000001b DSP2833x_SysCtrl.obj (ramfuncs)
00301c68 00000004 DSP2833x_usDelay.obj (ramfuncs)

.econst 0 00301c6c 00000138 00301c6c 00000100 DSP2833x_PieVect.obj (.econst)
00301d6c 00000038 example36_AIC32_2.obj (.econst)

.cinit 0 00301da4 00000105 00301da4 000000eb example36_AIC32_2.obj (.cinit)
00301e8f 0000000a rts2800_fpu32.lib : _lock.obj (.cinit)
00301e99 0000000a : exit.obj (.cinit)
00301ea3 00000004 : errno.obj (.cinit)
00301ea7 00000002 –HOLE– [fill = 0]

Green Deng:

程序在ram和flash中运行确实速度会差很多,但是应该也没这么多啊,你是按照哪个例程搬移代码的?以及怎么测试程序执行速度的? 另外,你是怎么在工程中加入FPU库的?

赞(0)
未经允许不得转载:TI中文支持网 » tms320f28335 fpu_fastRTS使用
分享到: 更多 (0)