BSL (MSP430)

From Texas Instruments Wiki
Jump to: navigation, search

Intro to the MSP430 BSL

The Bootstrap Loader, or BSL, is a program built into an MSP430 Microcontroller designed to communicate with the device, primarily for the purpose of reading and writing to memory. This is often done via commands send through a serial link (UART), but can be done via USB on some 5xx/6xx devices.

The Bootstrap Loader can be divided into two major types: ROM based BSLs found in the 1xx/2xx/4xx and FR5xx devices, and Flash based BSLs found in 5xx and 6xx devices. Though similar, both BSLs have a different protocol and command structure. In addition, the Flash based BSLs can be overwritten with a new program, for instance a BSL which communicates via I2C.

Documentation and Support

  • MSP430 Programming Via the Bootstrap Loader (SLAU319) This is the recommended starting point for those new to the BSL. This document describes the standard shipping TI BSLs from an external perspective. This document is designed for individuals who want to use and communicate with the default BSL as-is in the device. It is the only document required for the creation of a system which will use the TI BSLs for production programming, firmware update, or other purposes.
  • MSP430FR58xx and MSP430FR59xx Bootstrap Loader (BSL) This document is similar to the SLAU319 above but covers MSP430FR58xx and MSP430FR59xx.
  • Creating a Custom Flash-Based BSL (SLAA450) This document describes the internal operation and device interaction of the Flash based 5xx and 6xx BSLs. This enables individuals to create their own custom Flash based BSLs, or do simple changes on the existing BSLs such as changing the communication method (ie. to I2C). In addition, a method of creating a custom flash based 2xx BSL is also described. The source code of some 5xx/6xx released BSLs as well as the binary files can be also found in the associated/collateral files of this application note.
  • MSPBoot – Main Memory Bootloader for MSP430 Microcontrollers (SLAA600) This application report describes the implementation of a bootloader that resides in the main memory in an MSP430 microcontroller and that uses I2C communication. While highly flexible and modular, this bootloader has a small footprint, which makes it a very cost-effective solution.
  • TI E2E forums An online forum containing many answers to previously asked BSL questions.

MSP430-BSL USB BSL Tool - "BSL Rocket"

Olimex MSP430-BSL
Olimex MSP430-BSL (top side)
Olimex MSP430-BSL
Olimex MSP430-BSL (bottom side)

The MSP430-BSL USB BSL Tool (aka "BSL Rocket") is a tool designed to allow communication to MSP430 BSLs via Virtual COM ports. It can be used with the BSL_Scripter.exe supplied in the SLAU319 zip file (note: version 1.07 or greater) It is completely open source and the firmware can be compiled and run on either 3rd party produced boards, or TI Target Socket Boards. Please see the links below for more information:

BSL Hardware

BSL Software

  • MSPBSL_Library An Open Source, Cross Platform, Object Oriented (C++) Library designed to allow for easy PC-based communication with standard MSP430 BSLs. Note: Currently this library is not compatible with the BSL Rocket, in the mean time please use the BSL_Scripter included in SLAU319
  • USB Field Firmware Updater A part of the USB Developer Pack. This application allows for GUI controlled firmware download to an MSP430 device via the USB BSL.
  • Python MSP430 Tools An open source collection of Python MSP430 tools. Includes scripts to interface with standard MSP430 BSLs.
  • msp430-usbbsl An open-source, very tiny, easy to use command-line bootloader for serial and USB MSP430 devices, with built-in loader firmware, reads .hex files, Win32
  • OpenBSL An open source, light-weight, customizable bootloader for MSP430G2xx devices.

Documentation Errata


Page Section Correction
8 Section 5.1 The "FLASH_AREA" linker command file is missing in the associated file