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.

MSPM0G3105: error #10234-D: unresolved symbols remain

Part Number: MSPM0G3105

Tool/software:

Hello TI Community,

I'm encountering a compilation issue with my project for the MSPM0G3105 in CCS. My goal is to use the SDK with the TI Drivers library to program the MSPM0.

However, when I call functions from the ADC.h library, such as ADC_init(), the build process fails. After some testing, I've noticed that the compiler seems to identify errors in the SDK header files (.h) but not in the corresponding source files (.c).

#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include <stdio.h> 

#include "ti_msp_dl_config.h"
#include <ti/drivers/ADC.h>

#define ADC_SAMPLE_COUNT 10

int main(void)
{
  SYSCFG_DL_init();
  
  ADC_init();

  printf("Hello\n");
  return 0;
}

[0]**** Build of configuration Debug for project Dongle_ble ****
[1]"D:\\ti\\ccs2011\\ccs\\utils\\bin\\gmake" -k -j 8 all -O 
 
[2]Building file: "../Dongle_BLE.c"
[3]Invoking: Arm Compiler
[4]"D:/ti/ccs2011/ccs/tools/compiler/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" -c @"syscfg/device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"D:/Deping/4. Code/Dongle_ble" -I"D:/Deping/4. Code/Dongle_ble/Debug" -I"D:/ti/ccs2011/mspm0_sdk_2_04_00_06/source/third_party/CMSIS/Core/Include" -I"D:/ti/ccs2011/mspm0_sdk_2_04_00_06/source" -gdwarf-3 -MMD -MP -MF"Dongle_BLE.d_raw" -MT"Dongle_BLE.o" -I"D:/Deping/4. Code/Dongle_ble/Debug/syscfg"  @"syscfg/device.opt"  -o"Dongle_BLE.o" "../Dongle_BLE.c"
[5]Finished building: "../Dongle_BLE.c"
 
[6]Building target: "Dongle_ble.out"
[7]Invoking: Arm Linker
[8]"D:/ti/ccs2011/ccs/tools/compiler/ti-cgt-armllvm_4.0.2.LTS/bin/tiarmclang.exe" @"syscfg/device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -gdwarf-3 -Wl,-m"Dongle_ble.map" -Wl,-i"D:/ti/ccs2011/mspm0_sdk_2_04_00_06/source" -Wl,-i"D:/Deping/4. Code/Dongle_ble/Debug/syscfg" -Wl,-i"D:/ti/ccs2011/ccs/tools/compiler/ti-cgt-armllvm_4.0.2.LTS/lib" -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="Dongle_ble_linkInfo.xml" -Wl,--rom_model -o "Dongle_ble.out" "./Dongle_BLE.o" "./syscfg/ti_msp_dl_config.o" "./startup_mspm0g310x_ticlang.o" -Wl,-l"syscfg/device_linker.cmd"  -Wl,-ldevice.cmd.genlibs -Wl,-llibc.a 
[9]makefile:137: recipe for target 'Dongle_ble.out' failed
[10]warning #10210-D: creating ".sysmem" section with default size of 0x800; use the -heap option to change the default size
 
[11] undefined    first referenced                                                                                      
[12]  symbol          in file                                                                                           
[13] ---------    ----------------                                                                                      
[14] ADC_config   D:/ti/ccs2011/mspm0_sdk_2_04_00_06/source/ti/drivers/lib/ticlang/m0p/drivers_mspm0g1x0x_g3x0x.a<ADC.o>
[15] ADC_count    D:/ti/ccs2011/mspm0_sdk_2_04_00_06/source/ti/drivers/lib/ticlang/m0p/drivers_mspm0g1x0x_g3x0x.a<ADC.o>
[16] HwiP_disable D:/ti/ccs2011/mspm0_sdk_2_04_00_06/source/ti/drivers/lib/ticlang/m0p/drivers_mspm0g1x0x_g3x0x.a<ADC.o>
[17] HwiP_restore D:/ti/ccs2011/mspm0_sdk_2_04_00_06/source/ti/drivers/lib/ticlang/m0p/drivers_mspm0g1x0x_g3x0x.a<ADC.o>
 
[18]error #10234-D: unresolved symbols remain
[19]error #10010: errors encountered during linking; "Dongle_ble.out" not built
[20]tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation)
[21]gmake[1]: *** [Dongle_ble.out] Error 1
[22]makefile:133: recipe for target 'all' failed
[23]gmake: *** [all] Error 2
[24]**** Build Finished *

I was wondering if anyone has experienced this type of behavior before and could shed some light on why the compiler doesn't seem to be taking the SDK .c files into account.

Any guidance or suggestions would be greatly appreciated.

Thank you in advance for your help!

  • Hi Deping,

    According to the error message, I think you can add the relevant path to the "Properties" -> "Arm Linker" -> "File Search Path". You can refer to the existing examples based on the TI Drivers library provided in the SDK to configure the environment. By the way, according to the "ADC.c" in the TI Drivers Library, there is a need to define the "ADC_config" and "ADC_count" variables by yourself. Hope it would be helpful to you.

    Step1: 

    Step2:

    Best Regards,
    Peter

  • Thanks, that's really helpful! Could you also provide an example of how to use "ADC_config" and "ADC_count"?

  • Hi Deping,

    You can directly refer to the SDK's TI Divers directory for the ADC.c and ADC.h files to understand the meanings of the ADC_config and ADC_count, where there are comments on these variables, you can set them according to your needs.

    Additionally, as you can see, the examples based on the Drivers library are currently limited. If you do not have a must requirement to use this library, it is recommended that you choose to develop your project based on the driverlib [Your MSPM0_SDK Location\mspm0_sdk_xxxx\examples\nortos], as we have provided a rich set of examples based on it. You can import a empty project into CCS or other IDEs based on your device to develop your application.

    Best Regards,
    Peter