SLAAE88D December   2022  – September 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0H3216 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1 Introduction
    1. 1.1 Bootloader Concept
    2. 1.2 MSPM0 Bootloader Structure
      1. 1.2.1 ROM-Based BSL
      2. 1.2.2 ROM-Based BSL With Flash-Based Plug-In Interface
      3. 1.2.3 Flash-Based Secondary BSL
    3. 1.3 MSPM0 BSL Features and Demos Summary
  5. 2BSL Host Implementation Summary
  6. 3BSL Configuration in Non-Main (Configuration NVM)
    1. 3.1 Non-Main Introduction
    2. 3.2 Example – Disable PA18 BSL Invoke Pin With Sysconfig
  7. 4Bootloader Host
    1. 4.1 MCU Host Code Introduction
      1. 4.1.1 Hardware Connection
      2. 4.1.2 TXT to Header File Conversion
      3. 4.1.3 Step-by-Step Using the Demo
    2. 4.2 PC Host Example
      1. 4.2.1 Prepare the Image File and Password File
      2. 4.2.2 Steps to Using the GUI
  8. 5Bootloader Target
    1. 5.1 Default ROM-Based BSL
      1. 5.1.1 UART Interface
      2. 5.1.2 I2C Interface
    2. 5.2 Flash-Based Plug-In Interface Demos
      1. 5.2.1 UART Interface
        1. 5.2.1.1 Step by Step Using the Demo
        2. 5.2.1.2 How to Debug the Plug-In Interface Code
      2. 5.2.2 I2C Interface
      3. 5.2.3 SPI Interface
      4. 5.2.4 CAN Interface
    3. 5.3 Secondary BSL Demo
      1. 5.3.1 Flash-Based Secondary BSL Start From 0x1000
      2. 5.3.2 Flash-Based Secondary BSL Start From 0x0000
        1. 5.3.2.1 Flash-Based 0x0 Address BSL Demo for MSPM0C
        2. 5.3.2.2 Live Firmware Update
  9. 6Common Questions
    1. 6.1 Linker File Modification
    2. 6.2 Factory Reset by CCS to Recover Device
  10. 7References
  11. 8Revision History

Secondary BSL Demo

If the private protocol is needed, the ROM-based BSL core cannot be used anymore or MSPM0C without ROM BSL, the secondary BSL demo can be referred. A totally open sourced secondary BSL demos is provided in the SDK that you can use to easily modify the protocol. The default protocol of the secondary BSL demo is the same with ROM-based BSL. There are some kinds of secondary BSL demos mentioned in Figure 1-6.

Table 5-1 MSPM0 Secondary BSL Demos Summary
Demos Projects in SDK Using Case
Seconday BSL start from 0x1000 <...\mspm0_sdk_xx\examples\nortos\LP_MSPM0L1306(or LP_MSPM0G3507)\bsl\secondary_bsl_uart/i2c/spi/can> Just can be used with the device that can do BSL invoke detection in boot code(normally the device with ROM BSL) and need private protocol.
Flash based BSL start from 0x0 for MSPM0C <...\mspm0_sdk_xx\examples\nortos\LP_MSPM0C1104\bsl\flash_bsl> MSPM0 without ROM based BSL or need to change the judgment condition before jump to application like to do application's area CRC every time when power up or reset.
Live Firmware Update BSL NA Need live firmware update

In traditional flash based BSL design are more similar with the demo of Flash based BSL start from 0x0 for MSPM0C. For this kind of design can jump into the application code directly to set the PC with the start address of the application code. But this can cause stack conflict issue in some unexpected condition. For the design of Secondary BSL start from 0x1000, this uses the reset to jump to application code that can reset all registers or SRAM before go into application code that can be more stable. If the MSPM0 device with ROM based BSL also needs private protocol highly recommend to use the demo of Secondary BSL start from 0x1000.