SLUUDI6 December   2025 MSPM33C321A

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Overview of BSL Features
    2. 1.2 Terminology
    3. 1.3 Additional resources
  5. 2BSL Architecture
    1. 2.1 Design
      1. 2.1.1 Timeout Feature
        1. 2.1.1.1 Interface Autodetection
        2. 2.1.1.2 Command Reception
    2. 2.2 BSL Invocation
      1. 2.2.1 Application Request
      2. 2.2.2 GPIO Based Invocation
      3. 2.2.3 Debug Mailbox Command
      4. 2.2.4 Other BSL Invocation Methods
        1. 2.2.4.1 Pre-Boot Application Verification
        2. 2.2.4.2 Blank Device Handling
    3. 2.3 Memory
      1. 2.3.1 SRAM Memory Usage
    4. 2.4 BSL Non-Main Configuration
      1. 2.4.1  BSL Configuration ID
      2. 2.4.2  BSL Interface Pins (BLINTERFACE_PINS)
      3. 2.4.3  BSL Invoke Pin Configuration (BSLPIN_INVOKE)
      4. 2.4.4  Memory Readout Configuration
      5. 2.4.5  BSL Password
      6. 2.4.6  Application Revision Pointer
      7. 2.4.7  Security Alert Level
      8. 2.4.8  UART Baud Rate
      9. 2.4.9  I2C Slave Address
      10. 2.4.10 Configuration CRC
    5. 2.5 Changing BSL Configuration
      1. 2.5.1 Reference
      2. 2.5.2 Using SysConfig and Code Composer Studio (CCS)
      3. 2.5.3 Using Debug Interface
  6. 3Bootloader Protocol
    1. 3.1 Packet Format
    2. 3.2 BSL Protocol
      1. 3.2.1 BSL Acknowledgment
      2. 3.2.2 Peripheral Configuration
        1. 3.2.2.1 UART
        2. 3.2.2.2 I2C
        3. 3.2.2.3 CRC
    3. 3.3 Bootloader Core Commands
      1. 3.3.1  Connection
      2. 3.3.2  Get Device Info
      3. 3.3.3  Unlock Bootloader
      4. 3.3.4  Program Data
      5. 3.3.5  Program Data Fast
      6. 3.3.6  Readback Data
      7. 3.3.7  Flash Range Erase
      8. 3.3.8  Mass Erase
      9. 3.3.9  Factory Reset
      10. 3.3.10 Standalone Verification
      11. 3.3.11 Start Application
      12. 3.3.12 Change Baud Rate
    4. 3.4 Bootloader Core Response
      1. 3.4.1 BSL Core Message
      2. 3.4.2 Detailed Error
      3. 3.4.3 Memory Readback
      4. 3.4.4 Device Info
      5. 3.4.5 Standalone Verification
    5. 3.5 Bootloader Security
      1. 3.5.1 Password Protected Commands
        1. 3.5.1.1 Security Alert
      2. 3.5.2 BSL Entry
  7. 4Sample Program Flow with Bootloader
  8. 5Revision History

Application Revision Pointer

Memory Address: 0x80101C34

The APP_REV_POINTER field contains a pointer to the application version information stored in main flash memory. This allows the BSL to retrieve and report the application version when requested by the host.

Default Value: 0xFFFFFFFF (indicating no application version information is available)

Usage:

The APP_REV_POINTER is used by the BSL to locate and retrieve the application version information when the Get Device Info command (CMD_GET_IDENTITY, 0x19) is executed. This allows the host to query the version of the application currently installed on the device without having to load and execute the application.

When the Get Device Info command is executed, the BSL performs the following checks:

  1. Verifies that the APP_REV_POINTER contains a valid flash address
  2. Checks if the address is not blank (not 0xFFFFFFFF)
  3. Ensures the address is 64-bit aligned
  4. If all checks pass, reads an 8-byte (64-bit) value from the specified address as the application version

If any of these checks fail, the BSL returns 0 as the application version.

Implementation Requirements:

The APP_REV_POINTER field is maintained by the customer and requires the following implementation steps:

  1. Allocate a Section in Application Linker File: The customer must allocate a dedicated section in the application linker file to store the application version information. This section should be 64-bit aligned and located in main flash memory.
  2. Define the Application Version: The application version should be defined as a 64-bit (8-byte) value in the application code. This can be a structured value containing major, minor, and patch version numbers, or any other format that fits within 64 bits.
  3. Place the Version in the Allocated Section: The application version value should be placed in the allocated section during the application build process.
  4. Update the APP_REV_POINTER: The address of the allocated section must be stored in the APP_REV_POINTER field in the BSL configuration. This can be done using the methods described in the "Changing BSL Configuration" section.

Note: The APP_REV_POINTER is an optional feature. If not used, it should be left at its default value of 0xFFFFFFFF, which indicates that no application version information is available.