Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
I am trying to use a FireBeetle Oled Display (with SSD1360) via I2C with my LP-MSPM0C1104. It is wired correctly, a simple i2c test file has proven the adress to be correct and reachable.
I am having trouble getting the code to build due to errors with the dl_i2c.c file or the linking of libraries (i think).
-
IDE version: Code Composer Studio (CCS) v20.2
-
SDK version: MSPM0 SDK v2.05.01.00
-
Project folder and build log.
[0]**** Build of configuration Debug for project I2C_Oled **** [1]"C:\\TI\\CCS20\\ccs\\utils\\bin\\gmake" -k -j 16 all -O [2]Building file: "../I2C_Oled.syscfg" [3]Invoking: SysConfig [4]"C:/TI/CCS20/ccs/utils/sysconfig_1.24.0/sysconfig_cli.bat" --script "C:/Users/RD/workspace_ccstheia/I2C_Oled/I2C_Oled.syscfg" -o "." -s "C:/TI/mspm0_sdk_2_05_01_00/.metadata/product.json" --compiler ticlang [5]Running script... [6]Validating... [7]Generating Code (I2C_Oled.syscfg)... [8]Writing C:\Users\RD\workspace_ccstheia\I2C_Oled\Debug\device_linker.cmd... [9]Writing C:\Users\RD\workspace_ccstheia\I2C_Oled\Debug\device.opt... [10]Writing C:\Users\RD\workspace_ccstheia\I2C_Oled\Debug\device.cmd.genlibs... [11]Writing C:\Users\RD\workspace_ccstheia\I2C_Oled\Debug\ti_msp_dl_config.c... [12]Writing C:\Users\RD\workspace_ccstheia\I2C_Oled\Debug\ti_msp_dl_config.h... [13]Writing C:\Users\RD\workspace_ccstheia\I2C_Oled\Debug\Event.dot... [14]Finished building: "../I2C_Oled.syscfg" [15]Building file: "../dl_common.c" [16]Invoking: Arm Compiler [17]"C:/TI/CCS20/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/bin/tiarmclang.exe" -c @"device.opt" -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/RD/workspace_ccstheia/I2C_Oled" -I"C:/Users/RD/workspace_ccstheia/I2C_Oled/Debug" -I"C:/TI/mspm0_sdk_2_05_01_00/source/third_party/CMSIS/Core/Include" -I"C:/TI/mspm0_sdk_2_05_01_00/source" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/devices/msp/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib" -gdwarf-3 -MMD -MP -MF"dl_common.d_raw" -MT"dl_common.o" @"./device.opt" -o"dl_common.o" "../dl_common.c" [18]Finished building: "../dl_common.c" [19]Building file: "C:/TI/mspm0_sdk_2_05_01_00/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0c110x_ticlang.c" [20]Invoking: Arm Compiler [21]"C:/TI/CCS20/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/bin/tiarmclang.exe" -c @"device.opt" -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/RD/workspace_ccstheia/I2C_Oled" -I"C:/Users/RD/workspace_ccstheia/I2C_Oled/Debug" -I"C:/TI/mspm0_sdk_2_05_01_00/source/third_party/CMSIS/Core/Include" -I"C:/TI/mspm0_sdk_2_05_01_00/source" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/devices/msp/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib" -gdwarf-3 -MMD -MP -MF"startup_mspm0c110x_ticlang.d_raw" -MT"startup_mspm0c110x_ticlang.o" @"./device.opt" -o"startup_mspm0c110x_ticlang.o" "C:/TI/mspm0_sdk_2_05_01_00/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0c110x_ticlang.c" [22]Finished building: "C:/TI/mspm0_sdk_2_05_01_00/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0c110x_ticlang.c" [23]Building file: "../dl_i2c.c" [24]Invoking: Arm Compiler [25]"C:/TI/CCS20/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/bin/tiarmclang.exe" -c @"device.opt" -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/RD/workspace_ccstheia/I2C_Oled" -I"C:/Users/RD/workspace_ccstheia/I2C_Oled/Debug" -I"C:/TI/mspm0_sdk_2_05_01_00/source/third_party/CMSIS/Core/Include" -I"C:/TI/mspm0_sdk_2_05_01_00/source" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/devices/msp/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib" -gdwarf-3 -MMD -MP -MF"dl_i2c.d_raw" -MT"dl_i2c.o" @"./device.opt" -o"dl_i2c.o" "../dl_i2c.c" [26]Finished building: "../dl_i2c.c" [27]Building file: "ti_msp_dl_config.c" [28]Invoking: Arm Compiler [29]"C:/TI/CCS20/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/bin/tiarmclang.exe" -c @"device.opt" -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/RD/workspace_ccstheia/I2C_Oled" -I"C:/Users/RD/workspace_ccstheia/I2C_Oled/Debug" -I"C:/TI/mspm0_sdk_2_05_01_00/source/third_party/CMSIS/Core/Include" -I"C:/TI/mspm0_sdk_2_05_01_00/source" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/devices/msp/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib" -gdwarf-3 -MMD -MP -MF"ti_msp_dl_config.d_raw" -MT"ti_msp_dl_config.o" @"./device.opt" -o"ti_msp_dl_config.o" "ti_msp_dl_config.c" [30]Finished building: "ti_msp_dl_config.c" [31]Building file: "../I2C_Oled.c" [32]Invoking: Arm Compiler [33]"C:/TI/CCS20/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/bin/tiarmclang.exe" -c @"device.opt" -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/RD/workspace_ccstheia/I2C_Oled" -I"C:/Users/RD/workspace_ccstheia/I2C_Oled/Debug" -I"C:/TI/mspm0_sdk_2_05_01_00/source/third_party/CMSIS/Core/Include" -I"C:/TI/mspm0_sdk_2_05_01_00/source" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/devices/msp/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib/m0p" -I"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib" -gdwarf-3 -MMD -MP -MF"I2C_Oled.d_raw" -MT"I2C_Oled.o" @"./device.opt" -o"I2C_Oled.o" "../I2C_Oled.c" [34]../I2C_Oled.c:42:5: warning: call to undeclared function 'DL_Common_delay_cycles'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] [35] 42 | DL_Common_delay_cycles(ms * (CPUCLK_FREQ / 1000)); [36] | ^ [37]../I2C_Oled.c:51:12: warning: call to undeclared function 'DL_I2C_isControllerBusy'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] [38] 51 | while (DL_I2C_isControllerBusy(I2C_INST)); [39] | ^ [40]../I2C_Oled.c:57:5: warning: call to undeclared function 'DL_I2C_Controller_startTransfer'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] [41] 57 | DL_I2C_Controller_startTransfer(I2C_INST, OLED_I2C_ADDR, DL_I2C_CONTROLLER_DIRECTION_TX, len); [42] | ^ [43]../I2C_Oled.c:64:9: warning: call to undeclared function 'DL_I2C_Controller_putData'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] [44] 64 | DL_I2C_Controller_putData(I2C_INST, data[i]); [45] | ^ [46]4 warnings generated. [47]Finished building: "../I2C_Oled.c" [48]Building target: "I2C_Oled.out" [49]Invoking: Arm Linker [50]"C:/TI/CCS20/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/bin/tiarmclang.exe" @"device.opt" -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -gdwarf-3 -Wl,-m"I2C_Oled.map" -Wl,-i"C:/TI/mspm0_sdk_2_05_01_00/source" -Wl,-i"C:/Users/RD/workspace_ccstheia/I2C_Oled" -Wl,-i"C:/Users/RD/workspace_ccstheia/I2C_Oled/Debug/syscfg" -Wl,-i"C:/TI/CCS20/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/lib" -Wl,-i"C:/TI/mspm0_sdk_2_05_01_00/source/ti/driverlib/lib/ticlang/m0p/mspm0c110x/" -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="I2C_Oled_linkInfo.xml" -Wl,--rom_model -o "I2C_Oled.out" "./I2C_Oled.o" "./ti_msp_dl_config.o" "./startup_mspm0c110x_ticlang.o" "./dl_common.o" "./dl_i2c.o" -Wl,-l"./device_linker.cmd" -Wl,-ldevice.cmd.genlibs -Wl,-llibc.a [51]"./device_linker.cmd", line 63: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section, or the section contains padded functions. run placement with alignment fails for section ".stack" size 0x40. Available memory ranges: [52] SRAM size: 0x400 unused: 0x0 max hole: 0x0 [53] undefined first referenced [54] symbol in file [55] --------- ---------------- [56] DL_Common_delay_cycles ./I2C_Oled.o [57] DL_I2C_Controller_putData ./I2C_Oled.o [58] DL_I2C_Controller_startTransfer ./I2C_Oled.o [59] DL_I2C_isControllerBusy ./I2C_Oled.o [60]error #10234-D: unresolved symbols remain [61]error #10010: errors encountered during linking; "I2C_Oled.out" not built [62]tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation) [63]gmake[1]: *** [makefile:141: I2C_Oled.out] Error 1 [64]gmake: *** [makefile:135: all] Error 2 [65]**** Build Finished ****
-
I have tried: creating a new projects, reinstalling SDK, reinstalling CCS, adding
dl_common.canddl_i2c.cdirectly, verifying SysConfig settings, checking linker paths, etc.
Could you maybe help me to solve this issue? I am stuck.
additional files: FireBeetle_Covers-OLED12864_Display_SKU__DFR0507.pdf SSD1360_Data.pdf
Any help would be appriciated.
Thank you and kind regards!
Roy