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.

IWR6843: Linker error appears when I2C driver is used in SDK v3.6.

Part Number: IWR6843

Dear support team,

 

We are trying to use I2C driver in SDKv3.6 but Linker error appears after compile is succeeded.

Here you can see what we do to use the driver.

We would like to know how to fix this issue.

 

<What we do>

1. include file(#include <ti/drivers/i2c/I2CSlave.h>) is added in the source code.

2. Pin setting for I2C communication is defined in the source code.

3. I2C variables are prepared and I2C functions are added in the source code.

4. Project>Properties window is open in CCS.

5. Ver.(3.6.0.00-LTS) is selected in General>Products>Products and Repositories.

6. Below description is added in Build>ARM Linker>Summary of flags set:>Edit Flags...     

      -i"${COM_TI_MMWAVE_SDK_INSTALL_DIR}/packages/ti/drivers/i2c/lib"

7. Run compile > Linker error appears.

    On the Console screen, it was confirmed that the description in 6. was expanded and entered the Linker command line.

         -I "C: / TI / mmwave_sdk_03_06_00_00-LTS / packages / ti / drivers / i2c / lib"

    However, all I2C functions are undefined in Linker, and the symbol is unresolved, so it cannot be built.

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

Best regards, 

Taka

  • Hello Taka,

    The hint of the issue is within your error of "errors encountered during linking; "multi_gesture_68xx_ods_mss.xer4f" not built". When you go to multi gesture's .projectspec file (multi_gesture_68xx_ods_mss), you can see within project properties that this version was built with mmWave SDK 3.5. I would downgrade your SDK version of use to 3.5 and apply your I2C changes again and you should no longer get a linker issue with the xer4f file. You can get SDK version 3.5 and see all versions released here: (https://www.ti.com/tool/download/MMWAVE-SDK)

    Best Regards,

    Pedrhom Nafisi

  • Hello Pedrhom,

    Thank you for your message.

    Unfortunately, we can't find "multi gesture's .projectspec file (multi_gesture_68xx_ods_mss)". 

    In "multi_gesture_68xx_ods_mss", there are some files with ".project", ".cproject" or ".ccsproject". Are those files what you are suggesting ?

    Also, we have to test new I2C driver updated from SDKv3.6, so there is meaningless to downgrade to v3.5.

    Please kindly let us know how to build on SDKv3.6.

    Best regards,

    Taka

  • Hi Taka,

    Can you explain how you got to the state you are currently in? Our assumption would be that you imported the project from the projectspec provided in the mmwave Industrial Toolbox under 
    <mmwave_industrial_toolbox_4_11_0>\labs\Gesture_Recognition\Multi_Gesture_and_Motion_Detection_68xx\src

    If this is not the case, let me know and we can rebaseline our discussion.

    If that is the case, this lab has not been tested yet with SDK 3.6, so I would recommend testing that before attempting to add i2c. You can do this by either changing the SDK version in the .projectspec file, or by changing the product from SDK 3.5 to SDK 3.6 in your project properties.

    In terms of your issue adding I2C, I see that you added the lib directory to include via "-i"${COM_TI_MMWAVE_SDK_INSTALL_DIR}/packages/ti/drivers/i2c/lib"" but have you also added the path for the lib file itself to the linker?

    You can do this in CCS by going to project properties->build->ARM Linker->file search path and adding libi2c_xwr68xx.aer4f or libi2cSlave_xwr68xx.aer4f to the Include library file list at the top. 

    I look forward to your feedback.

    Best Regards,
    Alec

  • Hello Alec,

    Thank you for your message. We have resolved the Linker issue. 

    Best regards,

    Taka