Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE
Tool/software: Code Composer Studio
Hi,
I am looking into using fastRTS to speed up some floating point calculation in my project. First of all, I try to learn how to use it by playing with the example provided by Controlsuite.
The example name is "28335_fastRTS", located at "C:\ti\controlSUITE\libs\math\FPUfastRTS\V100\examples_ccsv4\2833x_fastRTS".
I followed the document "C28x Floating Point Unit fastRTS Library" (SPRCA75):
(1) in build---c2000 link---file search path ---- both rts2800_fpu32.lib and rts2800_fpu32_fast_implement.lib are already there.
(2) search libraries in priority order and reread libraries are ticked. The other one leaves unticked.
(3) In link order, it is 28235_IQmath_Ink.cmd (do not know why is 28235?), rts2800_fpu_fast_implement, and rts2800_fpu32.lib.
The I build the project, the build log is as follows.
**** Build of configuration Debug for project 28335_fastRTS ****
"C:\\ti\\ccsv8\\utils\\bin\\gmake" -k all
Building file: "C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/examples_ccsv4/source/CodeStartBranch.asm"
Invoking: C2000 Compiler
"C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.3.LTS/bin/cl2000" --silicon_version=28 -g --define=_DEBUG --define=LARGE_MODEL --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.3.LTS/include" --include_path="/packages/ti/xdais" --include_path="C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/include" --quiet --diag_warning=225 --optimize_with_debug --large_memory_model --unified_memory --float_support=fpu32 -k --asm_listing --output_all_syms --preproc_with_compile --preproc_dependency="CodeStartBranch.d_raw" "C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/examples_ccsv4/source/CodeStartBranch.asm"
Finished building: "C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/examples_ccsv4/source/CodeStartBranch.asm"
Building file: "C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/examples_ccsv4/source/fastRTS_sample.c"
Invoking: C2000 Compiler
"C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.3.LTS/bin/cl2000" --silicon_version=28 -g --define=_DEBUG --define=LARGE_MODEL --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.3.LTS/include" --include_path="/packages/ti/xdais" --include_path="C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/include" --quiet --diag_warning=225 --optimize_with_debug --large_memory_model --unified_memory --float_support=fpu32 -k --asm_listing --output_all_syms --preproc_with_compile --preproc_dependency="fastRTS_sample.d_raw" "C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/examples_ccsv4/source/fastRTS_sample.c"
Finished building: "C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/examples_ccsv4/source/fastRTS_sample.c"
Building target: "28335_fastRTS.out"
Invoking: C2000 Linker
"C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.3.LTS/bin/cl2000" --silicon_version=28 -g --define=_DEBUG --define=LARGE_MODEL --quiet --diag_warning=225 --optimize_with_debug --large_memory_model --unified_memory --float_support=fpu32 -k --asm_listing --output_all_syms -z -m"28335_fastRTS.map" --stack_size=400 --heap_size=2000 --warn_sections -i"C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.3.LTS/lib" -i"C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.3.LTS/include" -i"C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/examples_ccsv4/2833x_fastRTS" -i"C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/lib" --priority --reread_libs --xml_link_info="28335_fastRTS_linkInfo.xml" --entry_point=code_start --rom_model -o "28335_fastRTS.out" -lrts2800_fpu32_fast_supplement.lib -lrts2800_fpu32.lib "./CodeStartBranch.obj" "./fastRTS_sample.obj" "C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/examples_ccsv4/cmd/28335_fastRTS_lnk.cmd"
warning: entry-point symbol other than "_c_int00" specified: "code_start"
Finished building target: "28335_fastRTS.out"
**** Build Finished ****
The .map file shows as follows.
.text 0 00009000 0000030d
00009000 00000134 fastRTS_sample.obj (.text)
00009134 00000056 rts2800_fpu32.lib : boot28.asm.obj (.text)
0000918a 0000004a rts2800_fpu32_fast_supplement.lib : atan_f32.obj (.text)
000091d4 00000034 : cos_f32.obj (.text)
00009208 00000034 : sin_f32.obj (.text)
0000923c 00000029 rts2800_fpu32.lib : exit.c.obj (.text)
00009265 00000024 : cpy_tbl.c.obj (.text)
00009289 00000021 rts2800_fpu32_fast_supplement.lib : sqrt_f32.obj (.text)
000092aa 0000001d rts2800_fpu32.lib : memcpy.c.obj (.text)
000092c7 00000019 : args_main.c.obj (.text)
000092e0 00000019 rts2800_fpu32_fast_supplement.lib : div_f32.obj (.text)
000092f9 00000009 rts2800_fpu32.lib : _lock.c.obj (.text)
00009302 00000008 CodeStartBranch.obj (.text)
0000930a 00000002 rts2800_fpu32.lib : pre_init.c.obj (.text)
0000930c 00000001 : startup.c.obj (.text)
According to the document mentioned above, this .map means it is still using normal RTS, not fastRTS, as the rts2800_fpu32.lib appears fist. Why it is happening, as I did not changed anything in the code, and followed the instructions in the document to change the settings. Actually, I do not have to change the settings, as they are already the same as stated in the document.
Why it is still using the normal RTS?
I am using CCS8.2 with TI F28335 experimental kit.
Thanks,