Other Parts Discussed in Thread: C2000WARE
Tool/software: TI C/C++ Compiler
Hi
I am developing a motor controller application for the f280049C and am using the ROM based fast estimator for the sensorless control. My code is based on the C example is07_speed_control lab example under the C2000Ware_MotorControl_SDK_2_00_00_00/solutions.
This example compiles for flash and RAM with the the optimization level set to off or level 2.
I have ported this code to my application and developed a C++ based project that wraps a lot of the required C libraries (clarke / park / iPark etc) in C++ classes. This code compiles and links and runs from flash successfully IF the compiler optimization level set to -O2. This is great but makes debugging hard as a lot of the code cannot be stepped through or variables are not visible due to compiler optimization.
If I set the the compiler optimization level to off I get the following linker error....
error #10056: symbol "_exit" redefined: first defined in "../src/src_lib/f28004x_fast_rom_symbols_fpu32.lib<F28004x_FAST_ROM_CPU_out__exit_tmp.obj>"; redefined in "/ti/ccs910/ccs/tools/compiler/ti-cgt-c2000_18.12.2.LTS/lib/rts2800_fpu32.lib<exit.c.obj>"
If I remove either one of these libraries I get linker errors for undefined symbols for items present in one or the other which is what you would expect.
It would seem I cannot get past this as I need both but they both seem to define "exit".
The make files for this project have been auto generated by Code Composer.
Has anyone else come across this or is it an issue with using the FAST estimator library in a C++ environment and therefore a tool issue?
Any help would be appreciated.
Cheers
Phil