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.

CC2642R: Linking errors while porting project from CC2640R2F to CC2642R on custom board.

Part Number: CC2642R
Other Parts Discussed in Thread: CC2640R2F, SYSBIOS

Hi,

i'm trying to port firmware from a CC2640R2F with SDK 1.50.00.58 to a CC2642R with SDK 3.20.00.68. During the porting steps after necessary changes on the GAP-Changes for the new BLE5-Stack i'm getting various linking errors. All of these errors state that there are some undefined symbols left which won't occure in the linked libraries.

Description	Resource	Path	Location	Type
unresolved symbol AESCCM_config, first referenced in /home/jan/opt/ti/simplelink_cc13x2_26x2_sdk_3_20_00_68/source/ti/drivers/lib/drivers_cc26x2.aem4f<AESCCMCC26XX.oem4f>			 	C/C++ Problem

unresolved symbol AESECB_config, first referenced in /home/jan/opt/ti/simplelink_cc13x2_26x2_sdk_3_20_00_68/source/ti/drivers/lib/drivers_cc26x2.aem4f<AESECB.oem4f>			 	C/C++ Problem

unresolved symbol ECDH_config, first referenced in /home/jan/opt/ti/simplelink_cc13x2_26x2_sdk_3_20_00_68/source/ti/drivers/lib/drivers_cc26x2.aem4f<ECDHCC26X2.oem4f>			 	C/C++ Problem

unresolved symbol HCI_EXT_AdvEventNoticeCmd, first referenced in <whole-program>			 	C/C++ Problem

unresolved symbol HCI_EXT_ConnEventNoticeCmd, first referenced in <whole-program>			 	C/C++ Problem

unresolved symbol NVS_config, first referenced in /home/jan/opt/ti/simplelink_cc13x2_26x2_sdk_3_20_00_68/source/ti/drivers/lib/drivers_cc26x2.aem4f<NVS.oem4f>			 	C/C++ Problem

unresolved symbol NVS_count, first referenced in /home/jan/opt/ti/simplelink_cc13x2_26x2_sdk_3_20_00_68/source/ti/drivers/lib/drivers_cc26x2.aem4f<NVS.oem4f>			 	C/C++ Problem

unresolved symbol PowerCC26X2_config, first referenced in /home/jan/opt/ti/simplelink_cc13x2_26x2_sdk_3_20_00_68/source/ti/drivers/lib/drivers_cc26x2.aem4f<PowerCC26X2.oem4f>			 	C/C++ Problem

unresolved symbol ti_sysbios_hal_Seconds_get__E, first referenced in <whole-program>			 	C/C++ Problem

unresolved symbol ti_sysbios_hal_Seconds_set__E, first referenced in <whole-program>			 	C/C++ Problem

unresolved symbol TRNG_config, first referenced in /home/jan/opt/ti/simplelink_cc13x2_26x2_sdk_3_20_00_68/source/ti/drivers/lib/drivers_cc26x2.aem4f<TRNGCC26XX.oem4f>			 	C/C++ Problem

These errors look like they are caused due to some symbols referenced in some libraries used by TIRTOS/SDK but i can't determine where they are defined. I've tried to check where these symbols are used or where they have been defined (i've even looked into the binarys) but i did not find anything useful. I've tried different libraries to link but still no progress.

Where can i find these symbols? Which additional libraries do i have to include? Or do i have to try something completely different?

Best regards,
Jan

  • Hi Jan,

    Did you follow the migration guides?

  • Hi Joakim,

    yes i've followed the migration guides. I had to do some additional changes due to some renaming issues regarding the newer SDK. I think the biggest problem with this was caused due to the huge step from 1.50.00.58 to 3.20.00.68 which is missing some steps in between. The problem i have is i can't try the steps in between on the old chip because we're running out of space and the program won't fit into the available memory when using newer SDKs than 1.50.00.58. After resolving all renaming issues and following the Migration Guide for CC26X0 -> CC26X2 i've been able to compile but not to link. That's where i'm stuck now. Additionally i have to use a custom hardware with it's own 'board.h'. There are some changes too which are not mentioned in the migration guide like the following:

    struct RFCC26XX_HWAttrs;
    // is now
    struct RFCC26XX_HWAttrsV2;

    And some more.

    Best regards,

    Jan

  • Hi Joakim,

    actually i could reduce my errors after modifying the 'board.c' used by our firmware. The CC2642 needed some additional definitions so i got rid of most of the errors.

    Now there are two errors remaining:

    Description	Resource	Path	Location	Type
    unresolved symbol ti_sysbios_hal_Seconds_get__E, first referenced in <whole-program>			 	C/C++ Problem
    Description	Resource	Path	Location	Type
    unresolved symbol ti_sysbios_hal_Seconds_set__E, first referenced in <whole-program>			 	C/C++ Problem
    
    

    I searched for the occurrence of this symbol inside the SDK and could only find some '.java' files and a class file. The only other filetype i've found is some header which defines another symbol using the value of the missing symbol which doesn't really help.

    Thanks for your help!

    Best regards,
    Jan

  • Hi Jan,

    How large is your application? I suppose it might be a simpler approach to use a new reference project for CC26x2 and then migrate over components from the CC2640R2 Application code space, compiling and testing by a more step by step approach. But maybe this is what you did?

  • Hi Joakim,

    yes, thats actually what i tried. I've moved the components step by step and fixed the issues i found. But now there is a function which accesses the internal RTC. I think it's something with 'Seconds_get' or 'Seconds_set' which is a driver function found in the SDK. Or not found.. i'm not sure about that. But thats the missing symbol which is not found.

    Best Regards,
    Jan

  • Hi Jan,

    I see. You are correct that Seconds_get / set is part of the module ti.sysbios.family.arm.cc26xx.Seconds.

    If you are using this functions, try to include;

    #include <ti/sysbios/family/arm/cc26xx/Seconds.h>

  • Hi Joakim,

    i've found the solution. I had a look into the TI-RTOS User Guide again and saw that the 'ti.sysbios.hal.Seconds' module can be enabled in the configuration. So i've tried to enable it and it works.

    var Seconds = xdc.useModule('ti.sysbios.hal.Seconds');
    

    Now it seems to compile and i can start testing.

    Best Regards,
    Jan