SDAA211 January   2026 MSPM0G1518 , MSPM0G1519 , MSPM0G3518 , MSPM0G3519

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Detailed Description
    1. 2.1 Overview
      1. 2.1.1 Live Firmware Update Flow
      2. 2.1.2 Memory Organization
    2. 2.2 Block Diagram
    3. 2.3 Code
      1. 2.3.1 CSC (Customer Secure Code, Bankswap_CSC_G3519_v2)
        1. 2.3.1.1 CSC - Main Function (Bankswap_CSC_G3519_v2.c)
        2. 2.3.1.2 CSC - Linker File (Bootloader.cmd)
      2. 2.3.2 App (Bankswap_G3519_gpio_output_toggle_v2_SW_Version55_CRC32)
        1. 2.3.2.1 App - Main Function (Bankswap_G3519_gpio_output_toggle_v2_SW_Version55_CRC32.c)
        2. 2.3.2.2 App – UART ISR (Bankswap_G3519_gpio_output_toggle_v2_SW_Version55_CRC32.c)
        3. 2.3.2.3 App - Linker File (device_linker.cmd)
    4. 2.4 Implementation
      1. 2.4.1 Implementation Overview
      2. 2.4.2 Implementation Process
        1. 2.4.2.1 Import CCS Project Files (TI CCS IDE)
        2. 2.4.2.2 Conduct MCU Factory Reset (TI CCS IDE)
        3. 2.4.2.3 Build CSC, App in CCS (TI CCS IDE)
        4. 2.4.2.4 Start Debug and Download Image into MCU in CCS (TI CCS IDE)
        5. 2.4.2.5 Generate Data Frame to Send (uart_frame_gui.exe)
        6. 2.4.2.6 Send New FW via UART in PC (Tera Term)
        7. 2.4.2.7 Check the Updated FW (TI CCS IDE)
  6. 3Summary
  7. 4References

CSC - Linker File (Bootloader.cmd)

--define=_BOOT_SIZE_=(8*1024)

MEMORY
{
    FLASH_BOOT      (RX)  : origin = 0x00000000,  length = _BOOT_SIZE_
    FLASH_APP       (RX)  : origin = _BOOT_SIZE_, length = (0x00040000 - _BOOT_SIZE_)
}

SECTIONS
{
    .intvecs      : > 0x00000000
    .text         : palign(8) {} > FLASH_BOOT
    .const        : palign(8) {} > FLASH_BOOT
    .cinit        : palign(8) {} > FLASH_BOOT
    .pinit        : palign(8) {} > FLASH_BOOT
    .rodata       : palign(8) {} > FLASH_BOOT
    .ARM.exidx    : palign(8) {} > FLASH_BOOT
    .init_array   : palign(8) {} > FLASH_BOOT
    .binit        : palign(8) {} > FLASH_BOOT
}

The CSC boundary is set to 8,192 bytes (0x0000 ~ 0x2000). Users must align the boundary to 0x400 due to the Arm Cortex-M0+ VTOR (Vector Table Offset Register) alignment requirement of 0x100 and the flash erase sector size of 1 kB (0x400).