SLAA600E June   2013  – January 2024

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Glossary
    2. 1.2 Conventions
  5. 2Implementation
    1. 2.1 Main
    2. 2.2 Application Manager
      1. 2.2.1 Boot and Application Detection
        1. 2.2.1.1 Force Bootloader Mode
        2. 2.2.1.2 Application Validation
        3. 2.2.1.3 Jump to Application
      2. 2.2.2 Vector Redirection
      3. 2.2.3 Interrupt Vectors in Flash Devices
      4. 2.2.4 Dual Image Support
        1. 2.2.4.1 Jumping to Application in Dual Image Mode
    3. 2.3 Memory Interface (MI)
      1. 2.3.1 Dual Image Support
    4. 2.4 Communication Interface (CI)
      1. 2.4.1 Physical-DataLink (PHY-DL)
        1. 2.4.1.1 I2C
          1. 2.4.1.1.1 Time-out Detection
        2. 2.4.1.2 UART
        3. 2.4.1.3 SPI
        4. 2.4.1.4 CC110x
        5. 2.4.1.5 Comm Sharing
      2. 2.4.2 NWK-APP
        1. 2.4.2.1 BSL-Based Protocol
          1. 2.4.2.1.1 Security
          2. 2.4.2.1.2 BSL-Based Protocol using CC110x
          3. 2.4.2.1.3 Examples Using I2C
          4. 2.4.2.1.4 Examples Using UART or CC110x
  6. 3Customization of MSPBoot
    1. 3.1 Predefined Customizations
  7. 4Building MSPBoot
    1. 4.1 Starting a New Project
      1. 4.1.1 Creating a New MSPBoot Project
        1. 4.1.1.1 MSPBootProjectCreator.pl
        2. 4.1.1.2 Importing Project Spec File in CCS
        3. 4.1.1.3 Modifying Generated Source Code
          1. 4.1.1.3.1 Modifying MSPBoot Main.c
          2. 4.1.1.3.2 Modifying TI_MSPBoot_Config.h
          3. 4.1.1.3.3 Modifying TI_MSPBoot_CI_PHYDL_xxxx_xxx.c
          4. 4.1.1.3.4 Modifying TI_MSPBoot_AppMgr.c
          5. 4.1.1.3.5 Modifying Application Main.c
          6. 4.1.1.3.6 Modifying TI_MSPBoot_Mgr_Vectors_xxxx.c
      2. 4.1.2 Loading Application Code With MSPBoot
        1. 4.1.2.1 Convert Application Output Images
    2. 4.2 Examples
      1. 4.2.1 LaunchPad Development Kit Hardware
      2. 4.2.2 CC110x Hardware
      3. 4.2.3 Building the Target Project
      4. 4.2.4 Building the Host Project
      5. 4.2.5 Running the Examples
  8. 5References
  9. 6Revision History

Abstract

This application note describes the implementation of a bootloader that resides in the main memory of MSP430™ flash-based microcontrollers (MCUs) using either Inter-Integrated Circuit (I2C), universal asynchronous receiver/transmitter (UART), or a serial peripheral interface (SPI) bus and CC110x RF transceivers to accomplish over-the-air download (OAD). While highly flexible and modular, this bootloader has a small footprint, which makes it a very cost-effective solution, and supports the large memory model (devices with a memory footprint greater than 64KB).

A software package that includes examples and source code for both host and target devices can be downloaded from the following URL: https://www.ti.com/tool/download/MSPBOOT

For a step-by-step procedure that explains how to run the examples, see Section 4.2.5.

Do not confuse this bootloader with the MSP430 Bootloader (BSL), which resides in protected memory (ROM or flash) in some MSP430 MCUs. For more information on the MSP430 BSL, see the MSP430™ Flash Device Bootloader (BSL) User's Guide and Creating a Custom Flash-Based Bootloader (BSL).

Note: MSP430FRBoot is an extension to MSPBoot and implements a main memory resident bootloader for MSP430 FRAM MCUs using various communication interfaces and over-the-air download (OAD) capabilities. MSP430FRBoot supports the large memory model (devices with a memory footprint greater than 64KB) as well as dual image and interrupt redirection options, making it a good customizable alternative to the built-in BSL on MSP430 FRAM MCUs.