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

Customization of MSPBoot

MSPBoot was designed with low cost and a small footprint as top priorities; however, some applications require or can benefit from having a higher level of security and robustness. Based on the application requirements, different levels of customizations are available in the MSPBoot code, and they can be adjusted to particular needs. These options are either selected by adding the appropriate files or by enabling and disabling certain pre-processor definitions. Table 3-1 lists the options that can be configured in TI_MSPBoot_Config.h.

Table 3-1 Optional Configurations
ValueDescriptionEffect on Code Size
NDEBUG
DefinedASSERT_H functions are ignored. Watchdog is enabled.
UndefinedUsed during debugging. ASSERT_H functions are checked. Watchdog is disabled.Adds approximately 20 bytes
CONFIG_MI_MEMORY_RANGE_CHECK
DefinedThe address being erased or programmed is validated to be within the Application area.Adds approximately 44 bytes
UndefinedAddress being erased or programmed is not validated. Host must send correct address.
CONFIG_APPMGR_APP_VALIDATE
1Application is not validated-
2Application is validated by checking its CRC-CCITT.Adds approximately 6 bytes
CONFIG_CI_PHYDL_COMM_SHARED
DefinedCommunication Interface PHY-DL layer is shared with application.Adds approximately 28 bytes
UndefinedCI PHY-DL is not shared with application.
CONFIG_CI_PHYDL_I2C_TIMEOUT
DefinedDetect time-out in CI PHY-DL.Adds approximately 48 to 62 bytes
UndefinedCI PHY-DL does not detect time-out.
CONFIG_CI_PHYDL_START_CALLBACK
DefinedA callback function is called when Start is detected (required only for some protocols or Communication interfaces).Adds approximately 12 bytes
UndefinedCallback function is not called when Start is detected.
CONFIG_CI_PHYDL_STOP_CALLBACK
DefinedA callback function is called when Stop is detected (required only for some protocols or Communication interfaces).Adds approximately 38 to 54 bytes
UndefinedCallback function is not called when Stop is detected.
CONFIG_CI_PHYDL_ERROR_CALLBACK
DefinedA callback function is called when a time-out error an error is detected (only for some protocols or Communication interfaces).Adds approximately 16 to 20 bytes
UndefinedCallback function is not called when a time-out error is detected.
CONFIG_CI_PHYDL_CC1101_FREQUENCY
DefinedDefines the frequency of CC110x communication-
Undefined--
CONFIG_CI_PHYDL_UART_BAUDRATE
DefinedDefines the baud rate of UART communication-
Undefined--
CONFIG_CI_PHYDL_I2C_SLAVE_ADDR
DefinedDefines the address the MSP430 will respond to when using I2C communication-
Undefined--

Other customizations are selected by adding and using the appropriate files in the project. Table 3-2 lists the files that are interchangeable in the project.

Table 3-2 Customization Files
CI PHY-DL
TI_MSPBoot_CI_PHYDL_USI_I2C_Slave.cUse USI as I2 C slave
TI_MSPBoot_CI_PHYDL_USCI_I2C_Slave_x2xx.cUse USCI as I2 C slave on x2xx devices
TI_MSPBoot_CI_PHYDL_USCI_I2C_slave.cUse USCI as I2C slave
TI_MSPBoot_CI_PHYDL_USI_I2C_slave.cUse USI as I2C slave
TI_MSPBoot_CI_PHYDL_eUSCI_I2C_slave.cUse eUSCI as I2C slave
TI_MSPBoot_CI_PHYDL_USCI_UART_x2xx.cUse USCI as UART on x2xx devices
TI_MSPBoot_CI_PHYDL_USCI_UART.cUse USCI as UART
TI_MSPBoot_CI_PHYDL_eUSCI_UART.cUse eUSCI as UART
TI_MSPBoot_CI_PHYDL_CC1101.cUse CC110x
MI
TI_MSPBoot_MI_Flash_20Bit.cAPI used to program application flash in large memory model devices
TI_MSPBoot_MI_FlashDualImg_20Bit.cAPI that implements dual-image in flash in large memory model devices
TI_MSPBoot_MI_Flash_16Bit.cAPI used to program application flash in small memory model devices
TI_MSPBoot_MI_FlashDualImg_16Bit.cAPI that implements dual-image in flash in small memory model devices
App Manager
TI_MSPBoot_AppMgr.cStandard app manager
TI_MSPBoot_AppMgrDualImg_20Bit.cApp manager that supports dual image in large memory model devices
TI_MSPBoot_AppMgrDualImg_16Bit.cApp manager that supports dual image in small memory model devices