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.

SIMPLELINK-CC32XX-SDK: Updating SDK from 4.40.00.07 to 6.10.00.05 causes unresolved externals

Part Number: SIMPLELINK-CC32XX-SDK
Other Parts Discussed in Thread: CC3220SF, SYSCONFIG, CC3235SF

We are trying to update the TI tools on our current Wireless Panic Button product using the CC3220SPMod device. We have updated the Code Composer Studio from Version 10 to Version: 12.6.0.00008 successfully. However, when updating the CC32XX-SDK from 4.40..00.07 to 6.10.00.05 we had a problem, and are not able to get past linking due to unresolved external symbols. We are using the SysConfig1.12.0 and XDC 3.26.1.16. It seems all of the symbols from the SDK kernel/packages/ti/dpl directory are no longer accessed during linking. Below is the Problems window output and the screen shot our Project's ARM Linker>File Search Path 

#10010 errors encountered during linking; "Wireless_Panic_Button_CC3220SF_tirtos_ccs.out" not built
<a href="file:/C:/ti/ccs1250/ccs/tools/compiler/dmed/HTML/10234.html">#10234-D</a> unresolved symbols remain
gmake: *** [all] Error 2
gmake[1]: *** [Wireless_Panic_Button_CC3220SF_tirtos_ccs.out] Error 1
unresolved symbol ClockP_construct, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2CC32XX.oem4>
unresolved symbol ClockP_create, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<Button.oem4>
unresolved symbol ClockP_destruct, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2CC32XX.oem4>
unresolved symbol ClockP_getCpuFreq, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2CC32XX.oem4>
unresolved symbol ClockP_getSystemTickPeriod, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/net/wifi/ccs/rtos/simplelink.a<driver.obj>
unresolved symbol ClockP_getSystemTicks, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/net/wifi/ccs/rtos/simplelink.a<cc_pal.obj>
unresolved symbol ClockP_Params_init, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<Button.oem4>
unresolved symbol ClockP_setTimeout, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2.oem4>
unresolved symbol ClockP_start, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2.oem4>
unresolved symbol ClockP_stop, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2.oem4>
unresolved symbol HwiP_clearInterrupt, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/net/wifi/ccs/rtos/simplelink.a<cc_pal.obj>
unresolved symbol HwiP_construct, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2CC32XX.oem4>
unresolved symbol HwiP_create, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/net/wifi/ccs/rtos/simplelink.a<cc_pal.obj>
unresolved symbol HwiP_delete, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/net/wifi/ccs/rtos/simplelink.a<cc_pal.obj>
unresolved symbol HwiP_destruct, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2CC32XX.oem4>
unresolved symbol HwiP_disable, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<ADC.oem4>
unresolved symbol HwiP_disableInterrupt, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<SPICC32XXDMA.oem4>
unresolved symbol HwiP_enableInterrupt, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<SPICC32XXDMA.oem4>
unresolved symbol HwiP_interruptsEnabled, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2.oem4>
unresolved symbol HwiP_Params_init, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/net/wifi/ccs/rtos/simplelink.a<cc_pal.obj>
unresolved symbol HwiP_restore, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<ADC.oem4>
unresolved symbol SemaphoreP_construct, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2CC32XX.oem4>
unresolved symbol SemaphoreP_constructBinary, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2CC32XX.oem4>
unresolved symbol SemaphoreP_create, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<CryptoCC32XX.oem4>
unresolved symbol SemaphoreP_createBinary, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/display/lib/ccs/m4/display_cc32xx.a<DisplayUart2.oem4>
unresolved symbol SemaphoreP_delete, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/display/lib/ccs/m4/display_cc32xx.a<DisplayUart2.oem4>
unresolved symbol SemaphoreP_destruct, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<UART2CC32XX.oem4>
unresolved symbol SemaphoreP_Params_init, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/drivers/lib/ccs/m4/drivers_cc32xx.a<CryptoCC32XX.oem4>
unresolved symbol SemaphoreP_pend, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/display/lib/ccs/m4/display_cc32xx.a<DisplayUart2.oem4>
unresolved symbol SemaphoreP_post, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/display/lib/ccs/m4/display_cc32xx.a<DisplayUart2.oem4>
unresolved symbol SystemP_vsnprintf, first referenced in C:/ti/simplelink_cc32xx_sdk_6_10_00_05/source/ti/display/lib/ccs/m4/display_cc32xx.a<DisplayUart2.oem4>

  • You will need to add "c:/ti/simplelink_cc32xx_sdk_6_10_00_05/kernel/tirtos/packages/ti/dpl/lib/ccs/m4/dpl_cc32xx.a".

    From some reason you have (in the File Search Path): "6_dpl_cc32xx.a"

  • I have tried that already, but did not help. These are the permutations I have tried with no success.

    C:\ti\simplelink_cc32xx_sdk_6_10_00_05\kernel\tirtos\packages\ti\dpl\lib\ccs\m4\dpl_cc32xx.a
    C:/ti/simplelink_cc32xx_sdk_6_10_00_05/kernel/tirtos/packages/ti/dpl/lib/ccs/m4/dpl_cc32xx.a
    C:/ti/simplelink_cc32xx_sdk_6_10_00_05/kernel/tirtos/packages/ti/dpl/lib/ccs/m4/6_dpl_cc32xx.a
    ${COM_TI_SIMPLELINK_CC32XX_SDK_INSTALL_DIR}\kernel\tirtos\packages\ti\dpl\lib\ccs\m4\dlp_cc32xx.a
    ${COM_TI_SIMPLELINK_CC32XX_SDK_INSTALL_DIR}/kernel/tirtos/packages/ti/dpl/lib/ccs/m4/dlp_cc32xx.a

  • Is it possible that our method of SDK migration could be the problem?
    So far we have changed the name of the existing 4.40 SDK's tirtos_builds_cc32xx_release_ccs project, then imported the 6.10 SDK's tirtos_buils_cc32xx_release_ccs project. Then the SDK project's COM_TI_SIMPLELINK_CC32XX_SDK_INSTALL_DIR_REPOS needed some fixing with two directories improperly joined with a ; character. Also some syntax needed updating in our product application's .syscfg file. The project was cleaned and all sources compiled with no errors. But then link errors occurred.   
    Is there a better way to migrate from the 4.40 SDK to the 6.10 SDK? 

  • I think the easier way will be to use a project from SDK6.10 (why don't you use the latest 7.10?) and copy your application files into it.

  • I have tried that too. But when I used our files from our application the problem occurred again. I can try that again with SDK6.10.
    As for SDK7.10 I do not see any tirtos example projects. And the tirtos7 example projects do not  support CCS, only IAR and GCC. Do we have to move from CCS for the SDK7.10?

  • As I expected, importing an example project, the 'empty' project from drivers, in the 6.10 SDK, and then copying over our application files caused the same problems. So instead I deleted this 6.10 project, then imported the 'empty' project from drivers, in the 6.10 SDK and build that project. The main_tirtos.c instantiated a Semaphore. The Semaphore was one of the symbols unresolved from our project. It did build successfully. I then started brining in files from our project into the newly imported 'empty' project. And found that the problem occurred when using our project's WPB.syscfg file which defined the hardware drivers used by our project. So I deleted that file from 'empty' and recreated a new WPB.syscfg file using the new SDK. And that solved the problem. 
    I have successfully updated our application to now use the 6.10SDK and tirtos7. But I still cannot figure out how to use SDK7.10  with CCS. Could you provide some guidance on this? 

  • same thing. start with SDK7.10 project  + sysconfig file. It includes the OS definitions ( instead of using a separate project for the OS configuration).

  • Could you give me the procedure one uses to "start with SDK7.10 project  + sysconfig file". When I try to use CCS Import Project and browse to the C:\ti\simplelink_cc32xx_sdk_7_10_00_13\examples\rtos\CC3235SF_LAUNCHXL\drivers\empty directory, but the Discovered Projects to not provide a CCS project.

  • Yes, From 7.10 we only support gcc or ticlang.

  • Ah so no support for CCS with SDK7.10. Are there any examples or documentation on migrating from CCS to either gcc or ticlang?

  • It is just a toolchain. the projectspec already use the gcc/ticlang libraries for the SDK components as needed.

    Do you have any source code that is built as library and not with the application itself?

  • Yes, we do build common libraries for our products.
    We have decided to stay at SDK6.10 and TIRTOS7 for now. At some point we will consider moving to SDK7.10. It is unfortunate that TI has decided to move away from the CCS IDE and not provide an alternative. But we will continue to use CCS with the 6.10SDK.
    We now consider this issue closed. Thanks for your help in getting to this point in our development.