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.

CCS/CC2640R2F: display <whole-program> Linking error

Part Number: CC2640R2F
Other Parts Discussed in Thread: CC2650

Tool/software: Code Composer Studio

Hi,

Im trying to integrate a second Task in the simple_peripheral project for the I2C protocol where I can get some sensor data(e.g. BMI160).

Therefore I basically copy/pasted the BMI160 example in the new task, which I have in i2c_protocol.c(with  i2c_protocol.h) file inside the Application folder.

But as soon as I uncomment the line with "bmi160_initialize_sensor(i2c);" the following error comes:

Building target: "simple_peripheral_cc2640r2lp_app.out"

Invoking: ARM Linker

"/Applications/ti/ti-cgt-arm_18.12.6.LTS/bin/armcl" --cmd_file="/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/blestack/config/build_components.opt" --cmd_file="/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/blestack/config/factory_config.opt" --cmd_file="/Users/user/workspace_v10/simple_peripheral_cc2640r2lp_stack_library/TOOLS/build_config.opt"  -mv7M3 --code_state=16 -me -O4 --opt_for_speed=1 --define=BOOSTXL_BASSENSORS --define=DeviceFamily_CC26X0R2 --define=BOARD_DISPLAY_USE_LCD=0 --define=BOARD_DISPLAY_USE_UART=1 --define=BOARD_DISPLAY_USE_UART_ANSI=1 --define=CC2640R2_LAUNCHXL --define=CC26XX --define=CC26XX_R2 --define=ICALL_EVENTS --define=ICALL_JT --define=ICALL_LITE --define=ICALL_MAX_NUM_ENTITIES=6 --define=ICALL_MAX_NUM_TASKS=3 --define=ICALL_STACK0_ADDR --define=MAX_NUM_BLE_CONNS=1 --define=POWER_SAVING --define=STACK_LIBRARY --define=USE_ICALL --define=xdc_runtime_Assert_DISABLE_ALL --define=xdc_runtime_Log_DISABLE_ALL -g --c99 --gcc --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"simple_peripheral_cc2640r2lp_app.map" --heap_size=0 --stack_size=256 -i"/Applications/ti/ti-cgt-arm_18.12.6.LTS/lib" -i"/Applications/ti/ti-cgt-arm_18.12.6.LTS/include" --reread_libs --define=CC26X0ROM=2 --diag_suppress=16002-D --diag_suppress=10247-D --diag_suppress=10325-D --diag_suppress=10229-D --diag_suppress=16032-D --diag_wrap=off --display_error_number --warn_sections --xml_link_info="simple_peripheral_cc2640r2lp_app_linkInfo.xml" --rom_model -o "simple_peripheral_cc2640r2lp_app.out" "./Application/another_task.obj" "./Application/att_rsp.obj" "./Application/bmi160_support.obj" "./Application/i2c_protocol.obj" "./Application/simple_peripheral.obj" "./Application/spi_protocol.obj" "./Application/util.obj" "./Drivers/ECC/ECCROMCC26XX.obj" "./Drivers/RF/RFCC26XX_singleMode.obj" "./Drivers/TRNG/TRNGCC26XX.obj" "./ICall/icall.obj" "./ICall/icall_cc2650.obj" "./ICall/icall_user_config.obj" "./ICallBLE/ble_user_config.obj" "./ICallBLE/icall_api_lite.obj" "./PROFILES/devinfoservice.obj" "./PROFILES/gatt_uuid.obj" "./PROFILES/gattservapp_util.obj" "./PROFILES/peripheral.obj" "./PROFILES/simple_gatt_profile.obj" "./Startup/CC2640R2_LAUNCHXL.obj" "./Startup/CC2640R2_LAUNCHXL_fxns.obj" "./Startup/ccfg_app_ble.obj" "./Startup/main.obj" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/devices/cc26x0r2/driverlib/bin/ccs/driverlib.lib" -l"configPkg/linker.cmd"  -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/kernel/tirtos/packages/ti/dpl/lib/dpl_cc26x0r2.aem3" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/drivers/lib/drivers_cc26x0r2.aem3" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/grlib/lib/ccs/m3/grlib.a" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/display/lib/display.aem3" -l"/Users/user/ti/sail_1_50_00_00/source/ti/sail/lib/ccs/cc26x0/sail.lib" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/devices/cc26x0r2/driverlib/bin/ccs/driverlib.lib" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/kernel/tirtos/packages/ti/dpl/lib/dpl_cc26x0r2.aem3" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/drivers/lib/drivers_cc26x0r2.aem3" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/display/lib/display.aem3" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/grlib/lib/ccs/m3/grlib.a" -l"/Users/user/workspace_v10/simple_peripheral_cc2640r2lp_stack_library/FlashROM_Library/ble_r2.symbols" -l"/Users/user/workspace_v10/simple_peripheral_cc2640r2lp_stack_library/FlashROM_Library/lib_linker.cmd" -l"/Users/user/workspace_v10/simple_peripheral_cc2640r2lp_stack_library/FlashROM_Library/simple_peripheral_cc2640r2lp_stack_library.lib" -l"/Users/user/ti/simplelink_cc2640r2_sdk_4_20_00_04/source/ti/blestack/common/cc26xx/ccs/cc26xx_app.cmd" -llibc.a 

<Linking>

 undefined first referenced

  symbol       in file     

 --------- ----------------

 display   <whole-program> 

 

error #10234-D: unresolved symbols remain

error #10010: errors encountered during linking; "simple_peripheral_cc2640r2lp_app.out" not built

gmake[1]: *** [simple_peripheral_cc2640r2lp_app.out] Error 1

 

>> Compilation failure

makefile:195: recipe for target 'simple_peripheral_cc2640r2lp_app.out' failed

gmake: *** [all] Error 2

makefile:188: recipe for target 'all' failed

**** Build Finished ****

I don't understand what it exactly complains for and how could I solve it.

  • Hi,

    To get additional details of where the invalid call to the symbol display is being originated, can you reduce the optimization to level "3" and re-build? The error message will show which .obj file is unable to find this symbol.

    Regards,

    Rafael

  • Hi,

    here is the error with opt lvl 3.

    <Linking>

     undefined first referenced                

      symbol       in file                     

     --------- ----------------                

     display   ./Application/bmi160_support.obj

     

    error #10234-D: unresolved symbols remain

    error #10010: errors encountered during linking; "simple_peripheral_cc2640r2lp_app.out" not built

    gmake[1]: *** [simple_peripheral_cc2640r2lp_app.out] Error 1

    .

    I checked the File Search Path option and the display library is included under:

     ${COM_TI_SIMPLELINK_CC2640R2_SDK_INSTALL_DIR}/source/ti/display/lib/display.aem3

    Leaving the display out of the bmi160_support.c code, by commenting all the displays the problem does not appear anymore. As soon as a Display_print3 is called, the error appears. This however, is not the solution, because I need to display the acceleration on the Terminal.

    I'm just trying to integrate the BMI160 example into the simple_peripheral project by creating an I2C task for the BMI160 after the simple_peripheral task.

  • Thomas,

    Please apologize for the delay; I see from other threads that you are past this issue and this thread will be closed. Feel free to reopen it if you still see this issue.

    Regards,

    Rafael