SLAAE88B December   2022  – March 2024 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Bootloader Introduction
      1. 1.1.1 Bootloader Concept
      2. 1.1.2 MSPM0 Bootloader Structure
        1. 1.1.2.1 ROM-Based BSL
        2. 1.1.2.2 ROM-Based BSL With Flash-Based Plug-In Interface
        3. 1.1.2.3 Flash-Based Secondary BSL
      3. 1.1.3 MSPM0 BSL Features and Demos Summary
    2. 1.2 BSL Host Implementation Summary
  5. 2BSL Configuration in Non-Main (Configuration NVM)
    1. 2.1 Non-Main Introduction
    2. 2.2 Example – Disable PA18 BSL Invoke Pin With Sysconfig
  6. 3Bootloader Host
    1. 3.1 MCU Host Code Introduction
      1. 3.1.1 Hardware Connection
      2. 3.1.2 TXT to Header File Conversion
      3. 3.1.3 Step-by-Step Using the Demo
    2. 3.2 PC Host Example
      1. 3.2.1 Prepare the Image File and Password File
      2. 3.2.2 Steps to Using the GUI
  7. 4Bootloader Target
    1. 4.1 Default ROM-Based BSL
      1. 4.1.1 UART Interface
      2. 4.1.2 I2C Interface
    2. 4.2 Flash-Based Plug-In Interface Demos
      1. 4.2.1 UART Interface
        1. 4.2.1.1 Step by step using the demo
        2. 4.2.1.2 How to Debug the Plug-In Interface Code
      2. 4.2.2 I2C Interface
      3. 4.2.3 SPI Interface
      4. 4.2.4 CAN Interface
    3. 4.3 Secondary BSL Demo
      1. 4.3.1 Flash-Based Secondary BSL Start From 0x1000
      2. 4.3.2 Live Firmware Update (LFU) Solution
  8. 5Common Questions
    1. 5.1 Linker File Modification
    2. 5.2 Factory Reset by CCS to Recover Device
  9. 6References
  10.   Revision History

Flash-Based Secondary BSL Start From 0x1000

The secondary BSL start from 0x1000, it can be put anywhere in the flash area except start from 0x0. Because the application code must start from the 0x0. The secondary BSL demo executed flow showed in Figure 1-6. It can support UART or I2C or SPI or CAN interface if the device supported. The demo’s step-by-step operation is the same as shown in Section 4.2.1.1.

When needed to debug the code after modification, follow the steps in Section 4.2.1.2.

In the secondary BSL, the interrupt vector table offset address has been moved start from 0x1000(due to the code start from 0x1000) in the reset handler that located in the file named startup_mspm0xxxx_ticlang.

When trying to move the secondary BSL to another flash area, this can be done in the cmd file. For example, move the secondary BSL start from 0x4000, make the modification of the cmd file as shown in Figure 4-5.

GUID-8BF8F1EE-A26E-451A-91E8-945324F47A15-low.png Figure 4-5 Move to 0x4000 cmd File Modification

The flash static write protection parameters and the start address of the alternate BSL also should be modified in the Sysconfig file, as shown in Figure 4-6.

GUID-E4258693-A293-4D10-B27E-4CF613CAEC37-low.png Figure 4-6 Move to 0x4000 Sysconfig File Modification

Except the modification in the secondary BSL, the application’s cmd file also need to be modified that to avoid re-used the flash area that be used by secondary BSL.