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.

RTOS/CC2650EM-5XD-RD: Fail to link after reinstalling TI-RTOS

Part Number: CC2650EM-5XD-RD
Other Parts Discussed in Thread: CC2650

Tool/software: TI-RTOS

Hi, 

I had to reinstall the entire C:\TI tree (ouch, painful) see attached tree structure:

I now try to rebuild a working CC2650/5XD project, originally based on TI example "spp_ble_server_cc2650_app" and I get the following link error:

<Linking>

 undefined                 first referenced                                                                                                                                 
  symbol                       in file                                                                                                                                      
 ---------                 ----------------                                                                                                                                 
 driverlib_release_0_47020 C:/ti/tirtos_cc13xx_cc26xx_2_21_00_06/products/tidrivers_cc13xx_cc26xx_2_21_00_04/packages/ti/drivers/lib/drivers_cc26xxware.aem3<PINCC26XX.oem3>

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "spp_ble_server_cc2650_app.out" not built

>> Compilation failure
makefile:193: recipe for target 'spp_ble_server_cc2650_app.out' failed
gmake: *** [spp_ble_server_cc2650_app.out] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

I verified that the file noted in the message (drivers_cc26xxware.aem3) does exist.

I also tried to rebuild the drivers using 'c:\ti\tirtos_cc13xx_cc26xx_2_21_00_06>..\xdctools_3_32_00_06_core\gmake.exe -f tirtos.mak drivers' , but got the same error.

Linker search path is as follows:

What is still missing ?

Thanks

  • I now try to rebuild a working CC2650/5XD project, originally based on TI example "spp_ble_server_cc2650_app" and I get the following link error:

    <Linking>
    
     undefined                 first referenced                                                                                                                                 
      symbol                       in file                                                                                                                                      
     ---------                 ----------------                                                                                                                                 
     driverlib_release_0_47020 C:/ti/tirtos_cc13xx_cc26xx_2_21_00_06/products/tidrivers_cc13xx_cc26xx_2_21_00_04/packages/ti/drivers/lib/drivers_cc26xxware.aem3<PINCC26XX.oem3>Looking at C:\ti\tirtos_cc13xx_cc26xx_2_21_00_06\products\cc13xxware_2_04_03_17272\driverlib\driverlib_release.h found the following macro:

    //*****************************************************************************
    //
    //! This macro shall be called once from within a function of a precompiled
    //! software deliverable to lock the deliverable to a specific DriverLib
    //! release. It is essential that the call is made from code that is not
    //! optimized away.
    //!
    //! This macro locks to the current DriverLib release used at compile-time.
    //!
    //! If attempting to use the precompiled deliverable with a different release
    //! of DriverLib, a linker error will be produced, stating that
    //! "driverlib_release_xx_yyyyy is undefined" or similar.
    //!
    //! To override the check, for example when upgrading DriverLib but not the
    //! precompiled deliverables, or when mixing precompiled deliverables,
    //! application developers may (at own risk) declare the missing DriverLib
    //! release using the \ref DRIVERLIB_DECLARE_RELEASE() macro.
    //
    //*****************************************************************************
    #define DRIVERLIB_ASSERT_CURR_RELEASE() \
        DRIVERLIB_ASSERT_RELEASE(0, 47020)

    Therefore, the linker error about the symbol driverlib_release_0_47020 being undefined suggests your problem is caused by a mismatch of pre-compiled library versions.

    From your screenshot driverlib is being linked from ${CC26CCWARE}/driverlib/bin/ccs/driverlib.lib. Whereas I looked at a working CC2650 project from tirtos_cc13xx_cc26xx_2_21_00_06 and found driverlib was being linked from "${COM_TI_RTSC_TIRTOSSIMPLELINK_INSTALL_DIR}/products/cc26xxware_2_21_01_15600/driverlib/bin/ccs/driverlib.lib", i.e. under the ${COM_TI_RTSC_TIRTOSSIMPLELINK_INSTALL_DIR} directory rather than the ${CC26CCWARE} directory:

    I suspect your linker error is because the ${CC26CCWARE} variable points at a different version of driverlib than that under C:/ti/tirtos_cc13xx_cc26xx_2_21_00_06