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.

CCS6.1 AM335X SDK 1.1.0.8 Examples Do Not Build - Link Errors

Other Parts Discussed in Thread: SYSBIOS

I have installed CCS6.1 and AM335X SDK 1.1.0.8 and TIRTOS 2.0.1.23 and XDCTOOLS 3.31.0.24 on Win7-64.

I have tried importing various example SDK projects into a new workspace, define the missing IA_SDK_HOME path symbol that is always missing for some reason in imported projects, but still cannot get any examples to build, it appears I am missing a library as symbols remain missing after linking, but there is no indication what library it might be.  I am using the unmodified default linker cmd file.  I have done this same thing numerous times in CCS5.5 without issues.

below is an example project build output for the Ethercat example project, but I get similar errors for other SDK example projects. 


**** Build of configuration Debug for project ethercat ****

"D:\\TI_CCS6\\ccsv6\\utils\\bin\\gmake" -k all
'Building file: ../ethercat.cfg'
'Invoking: XDCtools'
"C:/ti/xdctools_3_25_03_72/xs" --xdcpath="C:/ti/bios_6_35_04_50/packages;D:/TI_CCS6/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.A8Fnv -p ti.platforms.evmAM3359 -r release -c "D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2" --compileOptions "-g --optimize_with_debug" "../ethercat.cfg"
making package.mak (because of package.bld) ...
generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
configuring ethercat.xea8fnv from package/cfg/ethercat_pea8fnv.cfg ...
generating custom ti.sysbios library makefile ...
Starting build of library sources ...
making D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/examples/ethercat_slave/src/sysbios.aea8fnv ...
clea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/BIOS.c ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm.asm ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/arm/TaskSupport_asm.asm ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/arm/exc/Exception_asm.asm ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/arm/a8/TimestampProvider_asm.asm ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/arm/a8/Mmu_asm.asm ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/arm/a8/Cache_asm.asm ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/arm/a8/intcps/Hwi_asm.s470 ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/arm/a8/intcps/Hwi_asm_switch.s470 ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/timers/gptimer/Timer_asm.s470 ...
asmea8fnv C:/ti/bios_6_35_04_50/packages/ti/sysbios/timers/dmtimer/Timer_asm.s470 ...
area8fnv BIOS.obj arm_IntrinsicsSupport_asm.obj arm_TaskSupport_asm.obj exc_Exception_asm.obj a8_TimestampProvider_asm.obj a8_Mmu_asm.obj a8_Cache_asm.obj intcps_Hwi_asm.obj intcps_Hwi_asm_switch.obj gptimer_Timer_asm.obj dmtimer_Timer_asm.obj ...
Build of libraries done.
clea8fnv package/cfg/ethercat_pea8fnv.c ...
'Finished building: ../ethercat.cfg'
' '
        1 file(s) copied.
making ../src/sysbios.aea8fnv ...
gmake[1]: Nothing to be done for `all'.
'Building file: ../tiescappl.c'
'Invoking: TMS470 Compiler'
"D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/bin/armcl" -mv7A8 --code_state=32 --abi=eabi -me -g --include_path="D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/examples/ethercat_slave" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/os_drivers/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/platform/am335x/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/protocols/ethercat_slave/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/protocols/ethercat_slave/firmware" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/starterware/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/starterware/include/hw" --gcc --define=ECAT_LIMITED_DEMO --diag_warning=225 --preproc_with_compile --preproc_dependency="tiescappl.pp" --cmd_file="./configPkg/compiler.opt"  "../tiescappl.c"
'Finished building: ../tiescappl.c'
' '
'Building file: ../tiescutils.c'
'Invoking: TMS470 Compiler'
"D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/bin/armcl" -mv7A8 --code_state=32 --abi=eabi -me -g --include_path="D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/examples/ethercat_slave" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/os_drivers/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/platform/am335x/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/protocols/ethercat_slave/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/protocols/ethercat_slave/firmware" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/starterware/include" --include_path="D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/starterware/include/hw" --gcc --define=ECAT_LIMITED_DEMO --diag_warning=225 --preproc_with_compile --preproc_dependency="tiescutils.pp" --cmd_file="./configPkg/compiler.opt"  "../tiescutils.c"
'Finished building: ../tiescutils.c'
' '
'Building target: ethercat.out'
'Invoking: TMS470 Linker'
"D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/bin/armcl" -mv7A8 --code_state=32 --abi=eabi -me -g --gcc --define=ECAT_LIMITED_DEMO --diag_warning=225 -z -m"ethercat.map" -i"D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/lib" -i"D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/include" -i"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/platform/am335x/lib" -i"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/os_drivers/lib" -i"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/protocols/ethercat_slave/stack_lib" --reread_libs --warn_sections --xml_link_info="ethercat_linkInfo.xml" --rom_model -o "ethercat.out" "./tiescappl.obj" "./tiescutils.obj" "../am335x.cmd" -l"./configPkg/linker.cmd"  -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/platform/am335x/lib/am335x_platform.lib" -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/starterware/binary/armv7a/cgt_ccs/am335x/drivers/drivers.lib" -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/starterware/binary/armv7a/cgt_ccs/am335x/evmAM335x/platform/platform.lib" -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/protocols/ethercat_slave/stack_lib/ecat_slave_stack.lib" -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/os_drivers/lib/sys_bios_driver.lib"
<Linking>
"../am335x.cmd", line 11: warning: no matching section

"../am335x.cmd", line 11: warning: no matching section
>> Compilation failure
"../am335x.cmd", line 11: warning: no matching section

 undefined             first referenced                                                                                                         
  symbol                   in file                                                                                                              
 ---------             ----------------                                                                                                         
 HOSTwrite             D:\TI_CCS6\am335x_sysbios_ind_sdk_1.1.0.8\sdk\examples\ethercat_slave\Debug\configPkg\package\cfg\ethercat_pea8fnv.oea8fnv
 __TI_decompress_none                                                                                                                           
 __TI_decompress_rle24                                                                                                                          
 __TI_zero_init                                                                                                                                 
 __aeabi_uidivmod      D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/os_drivers/lib/sys_bios_driver.lib<osdrv_mcspi.obj>                        
 __aeabi_uldivmod      D:\TI_CCS6\am335x_sysbios_ind_sdk_1.1.0.8\sdk\examples\ethercat_slave\src\sysbios\sysbios.aea8fnv<BIOS.obj>              
 _args_main            C:\ti\xdctools_3_25_03_72\packages\ti\targets\arm\rtsarm\lib\boot.aea8fnv<boot.oea8fnv>                                  
 _nop                  D:\TI_CCS6\am335x_sysbios_ind_sdk_1.1.0.8\sdk\examples\ethercat_slave\Debug\configPkg\package\cfg\ethercat_pea8fnv.oea8fnv
 _register_lock        D:\TI_CCS6\am335x_sysbios_ind_sdk_1.1.0.8\sdk\examples\ethercat_slave\Debug\configPkg\package\cfg\ethercat_pea8fnv.oea8fnv
 _register_unlock      D:\TI_CCS6\am335x_sysbios_ind_sdk_1.1.0.8\sdk\examples\ethercat_slave\Debug\configPkg\package\cfg\ethercat_pea8fnv.oea8fnv
 abort                 C:\ti\xdctools_3_25_03_72\packages\ti\targets\arm\rtsarm\lib\ti.targets.arm.rtsarm.aea8fnv<System.oea8fnv>               
 atexit                C:\ti\xdctools_3_25_03_72\packages\ti\targets\arm\rtsarm\lib\ti.targets.arm.rtsarm.aea8fnv<System.oea8fnv>               
 copy_in               C:\ti\xdctools_3_25_03_72\packages\ti\targets\arm\rtsarm\lib\auto_init.aea8fnv<auto_init.oea8fnv>                        
 exit                  C:\ti\xdctools_3_25_03_72\packages\ti\targets\arm\rtsarm\lib\ti.targets.arm.rtsarm.aea8fnv<System.oea8fnv>               
 main_func_sp          C:\ti\xdctools_3_25_03_72\packages\ti\targets\arm\rtsarm\lib\boot.aea8fnv<boot.oea8fnv>                                  
 memcpy                ./tiescutils.obj                                                                                                         
 memset                D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/platform/am335x/lib/am335x_platform.lib<plat_utils.obj>                    
 strlen                D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/os_drivers/lib/sys_bios_driver.lib<osdrv_uart.obj>                         

error: unresolved symbols remain
error: errors encountered during linking; "ethercat.out" not built
gmake: *** [ethercat.out] Error 1
gmake: Target `all' not remade because of errors.

**** Build Finished ****

  • PeterN said:
    'Building target: ethercat.out'
    'Invoking: TMS470 Linker'
    "D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/bin/armcl" -mv7A8 --code_state=32 --abi=eabi -me -g --gcc --define=ECAT_LIMITED_DEMO --diag_warning=225 -z -m"ethercat.map" -i"D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/lib" -i"D:/TI_CCS6/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/include" -i"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/platform/am335x/lib" -i"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/os_drivers/lib" -i"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/protocols/ethercat_slave/stack_lib" --reread_libs --warn_sections --xml_link_info="ethercat_linkInfo.xml" --rom_model -o "ethercat.out" "./tiescappl.obj" "./tiescutils.obj" "../am335x.cmd" -l"./configPkg/linker.cmd"  -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/platform/am335x/lib/am335x_platform.lib" -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/starterware/binary/armv7a/cgt_ccs/am335x/drivers/drivers.lib" -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/starterware/binary/armv7a/cgt_ccs/am335x/evmAM335x/platform/platform.lib" -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/protocols/ethercat_slave/stack_lib/ecat_slave_stack.lib" -l"D:/TI_CCS6/am335x_sysbios_ind_sdk_1.1.0.8/sdk/os_drivers/lib/sys_bios_driver.lib"
    <Linking>

    Comparing this with the build output in my computer, I see that your build is missing a -l"libc.a" at the end of that linker command (which is the library that provides those missing symbol definitions).

    If you go into Project Properties->Build->ARM Linker->File Search Path, do you see "libc.a" listed there? If it is not, I'm not sure why it would be missing, but try adding it and see if the build completes.

    The screenshot of my imported project is shown below.