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.

MSPM0G3507: Arm-based microcontrollers forum

Part Number: MSPM0G3507

Tool/software:

Hi TI Team,

We are using function '__STATIC_INLINE   void invokeBSLAsm(void) in our project. This section of code has been copied from InvokeBSLAsm function refered from example code - ..\ti\mspm0_sdk_2_03_00_07\examples\nortos\LP_MSPM0G3507\bsl\bsl_software_invoke_app_demo_uart. We are facing compile issue  after compiling the project & we are getting below error

error: symbol 'init_ecc_loop' is already defined. This is possible when a label is defined inside an inline assembly statement within a function that is inlined multiple times. To prevent the function from being inlined, use the "noinline" function attribute.
[264] 311 | "init_ecc_loop: \n" /* Loop to clear ECC-code */

[269]../src/bootloader/boot_task/bootloader.c:319:10: error: symbol 'init_data_loop' is already defined. This is possible when a label is defined inside an inline assembly statement within a function that is inlined multiple times. To prevent the function from being inlined, use the "noinline" function attribute.
[270] 319 | "init_data_loop:\n" /* Loop to clear ECC-data */

Below is the Current Compiler version,

We tried the using the empty project thats available in the path: ti\mspm0_sdk_2_03_00_07\examples\nortos\LP_MSPM0G3507\driverlib\empty and copied the function '__STATIC_INLINE   void invokeBSLAsm(void)' . When we build this project its getting compiled successfully. 

Below is the Compiler version for empty project,

Kindly let us know the root casue of this issue and Let us know the possible solution to resolve this issue on priority

  • Try to global search this symbol: init_ecc_loop in project folder.

    Also, these error log shows the multi-define location:

    [264] 311 | "init_ecc_loop: \n" /* Loop to clear ECC-code */
    
    [269]../src/bootloader/boot_task/bootloader.c:319:10: error: symbol 'init_data_loop' is already defined. This is possible when a label is defined inside an inline assembly statement within a function that is inlined multiple times. To prevent the function from being inlined, use the "noinline" function attribute.
    [270] 319 | "init_data_loop:\n" /* Loop to clear ECC-data */

    Please check these area.

    Another question, why do you need  '__STATIC_INLINE   void invokeBSLAsm(void)' ?