This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello Experts,
I have been working on modifying my project to use the register-based approach instead of the API approach.
I have encountered the following error on building:
**** Build of configuration Debug for project HeliSAS_proto ****
"C:\\ti\\ccs1040\\ccs\\utils\\bin\\gmake" -k -j 4 all -O
Building target: "HeliSAS_proto.out"
Invoking: C2000 Linker
"C:/ti/ccs1040/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla1 --float_support=fpu64 --tmu_support=tmu0 --vcu_support=vcu2 --advice:performance=all --define=CPU1 --define=_FLASH -g --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi -z -m"HeliSAS_proto.map" --stack_size=0x200 --warn_sections -i"C:/ti/ccs1040/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS/lib" -i"C:/ti/ccs1040/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="HeliSAS_proto_linkInfo.xml" --rom_model -o "HeliSAS_proto.out" "./CoreSoftware/ARINC.obj" "./CoreSoftware/F2837xD_Adc.obj" "./CoreSoftware/F2837xD_CpuTimers.obj" "./CoreSoftware/F2837xD_DefaultISR.obj" "./CoreSoftware/F2837xD_Dma.obj" "./CoreSoftware/F2837xD_ECap.obj" "./CoreSoftware/F2837xD_EPwm.obj" "./CoreSoftware/F2837xD_EQep.obj" "./CoreSoftware/F2837xD_Emif.obj" "./CoreSoftware/F2837xD_GlobalVariableDefs.obj" "./CoreSoftware/F2837xD_Gpio.obj" "./CoreSoftware/F2837xD_I2C.obj" "./CoreSoftware/F2837xD_Ipc.obj" "./CoreSoftware/F2837xD_Ipc_Driver.obj" "./CoreSoftware/F2837xD_Ipc_Driver_Lite.obj" "./CoreSoftware/F2837xD_Ipc_Driver_Util.obj" "./CoreSoftware/F2837xD_Mcbsp.obj" "./CoreSoftware/F2837xD_PieCtrl.obj" "./CoreSoftware/F2837xD_PieVect.obj" "./CoreSoftware/F2837xD_Sci.obj" "./CoreSoftware/F2837xD_Spi.obj" "./CoreSoftware/F2837xD_SysCtrl.obj" "./CoreSoftware/F2837xD_TempSensorConv.obj" "./CoreSoftware/F2837xD_Upp.obj" "./CoreSoftware/F2837xD_can.obj" "./CoreSoftware/F2837xD_sci_io.obj" "./CoreSoftware/F2837xD_sdfm_drivers.obj" "./CoreSoftware/F2837xD_struct.obj" "./CoreSoftware/SpiDrv.obj" "./CoreSoftware/main.obj" "./CoreSoftware/norFlash.obj" "./CoreSoftware/parallelBus.obj" "./LibSource/qsinlt/qsinlt.obj" "./LibSource/sintb360/sintb360.obj" "../2837xS_FLASH_lnk.cmd" "../F2837xD_Headers_nonBIOS_cpu1.cmd" -llibc.a
<Linking>
undefined first referenced
symbol in file
--------- ----------------
error ./CoreSoftware/main.obj
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "HeliSAS_proto.out" not built
>> Compilation failure
makefile:181: recipe for target 'HeliSAS_proto.out' failed
gmake[1]: *** [HeliSAS_proto.out] Error 1
makefile:177: recipe for target 'all' failed
gmake: *** [all] Error 2
**** Build Finished ****
The error summary above does not indicate the names of the missing symbol(s). How do I go about debugging this issue?
I started the project from scratch and included library files from under C2000Ware_3_04_00_00.
I am unable to post the code as the project has too many files.
undefined first referenced
symbol in file
--------- ----------------
error ./CoreSoftware/main.obj
The shows that the symbol named error is undefined, and first referenced from the source file CoreSoftware/main.c
Looking at a C2000Ware example the C2000Ware_3_04_00_00_Software/device_support/f2837xd/examples/cpu1/blinky_with_DCSM/cpu01/blinky_cpu01.c source file which contains the main() function had an error function:
// // error - Error checking // void error(void) { __asm(" ESTOP0"); // Test failed!! Stop! for (;;); }
I suspect that is what missing from your code.
Yes, looks like the "error" function is missing from your code which is causing this error.
Best Regards
Siddharth
Thanks! It really slipped my mind that "error" could be the missing symbol that was captured in the error message. You also helped me in identifying that function and adding it to my code. The error is resolved.