mspgcc extends the GNU toolchain to support the TI MSP430 microcontroller.

mspgcc can be used as the development environment for these platforms:

  • GINA
  • GINA-Basestation
  • TelosB

 We thank Chris Snyder for his contribution to setting up this environment.

Page Contents

Build Environments

The mspgcc toolchain supports both the SCons/command line environment and Eclipse.

Packages and Versions

The GNU toolchain includes several component packages, listed in the table below. The listed versions are known to work.

PackageVersionNotes
gcc-msp430(GCC) 4.6.3 20120301
(mspgcc LTS 20120406 patched to 20120502)
'msp430-gcc' in Fedora
binutils-msp430(GNU Binutils) 2.21.1
(mspgcc LTS 20120406 patched to 20120502)
'msp430-binutils' in Fedora
msp430-libc20120224 
msp430mcu20120406
 
mspdebug0.19-1

Supports debugging via hardware such as MSPFET-430uif.
For Gina platform this hardware also is used for OpenWSN firmware upload.
If you don't need these tools, you don't need this package.

Installation

Linux

There are two ways to install the toolchain components: from the distribution packages listed above, or from the source code itself via the links below. We have tested with Ubuntu 12.04LTS 64bit.

Source code links:

Windows

  1. Install the mspgcc packages for mingw. mingw is a "minimalist GNU for Windows", i.e. it contains the build tools you typically find in a Linux distribution, but runs on Windows.
    1. Download the latest version from http://sourceforge.net/projects/mspgcc/files/Windows/mingw32/. At the time of writing, mspgcc-20120406-p20120911.zip.
    2. Unzip somewhere on your computer. We recommend C:\mspgcc\mspgcc-20120406-p20120911.
  2. Add the bin/ directory to your PATH. Use one of the following:
    1. To add it temporarily, open a command prompt and type

      C:\Users\Thomas>set PATH=%PATH%;C:\mspgcc\mspgcc-20120406-p20120911\bin\
    2. To add it permanently:
      1. Type Ctrl+Windows.
      2. Click on Advanced System Settings > Environment Variables.
      3. In User Variables for <you>, select PATH and click Edit.
      4. At the end of the Variable Value text field, append;C:\mspgcc\mspgcc-20120406-p20120911\bin\.

Loading Firmware

The build environment transparently executes the necessary software to load firmware onto motes. For reference, OpenWSN uses these tools under the covers:

Tips and Tricks

The MSP-FET430uif firmware

Your MSP-FET430 UIF can come with different versions of the firmware. If you connect your FET debugger to the USB port and appears as a /dev/ttyUSBx devices then most probably you have version 2 of the firmware. If contrarily it appears as a /dev/ttyACMx your device is on version 3 of the firmware.

MSP-FET Firmware V2

With version 2 of the firmware things are pretty easy.

def uploader(device):

    return Builder(action = 'mspdebug -d {} -j uif "prog $SOURCE"'.format(device),

                   suffix = '.phonyupload',

                   src_suffix = '.ihex')
scons project=<gina|telosb|pc>  upload=/dev/ttyUSBx  ./path/to/project/03oos_openwsn/

e.g: scons project=gina  upload=/dev/ttyUSB0  ./firmware/openos/projects/common/03oos_openwsn/

MSP-FET Firmware V3

If you have version 3 of the firmware you have 2 options:

  1. Downgrade your firmware to version 2 as described here.
  2. Setting up your environment to run with version 3 of the firmware.

Setup environment to run with FET v3 Firmware

Needed to say that I had a lot of problems to setup that. I will try to simplify as much as possible the steps to follow so you skip all my problems.

def uploader(device):

    return Builder(action = 'mspdebug tilib -d {} "prog $SOURCE"'.format(device),

                   suffix = '.phonyupload',

                   src_suffix = '.ihex')


scons project=<gina|telosb|pc>  upload=/dev/ttyACMx  ./path/to/project/03oos_openwsn/

e.g: scons project=gina  upload=/dev/ttyACM0  ./firmware/openos/projects/common/03oos_openwsn/

If libmsp430.so library does not work, you will need to compile it manually. To do so you can follow this tutorial and this very helpful post on the TI forums. Besides I try to resume here all the steps.:

         ./boostrap.sh --prefix=[dir]
         ./b2 link=static cxxflags=-fPIC -d+2 -a
scons project=<gina|telosb|pc>  upload=/dev/ttyACMx  ./path/to/project/03oos_openwsn/

e.g: scons project=gina  upload=/dev/ttyACM0  ./firmware/openos/projects/common/03oos_openwsn/

Known problems

During the process of setting up the environment I've found this problems. Check this section in case you are facing any problem during the install.

 

Problem: When installing msp430-binutils from sources the compiler complaints about makeinfo in the texinfo package.

Solution: Install texinfo from sources:

apt-get install texinfo.

Then edit the Makefile (line 344) and replace

 

MAKEINFO = /path/to/your/msp430-build/binutils-2.21.1/missing makeinfo

by:

MAKEINFO =  makeinfo

 

Problem: GDB does not compile and complaints about ncurses lib.

Solution: Install libcurses5-dev

apt-get install libncurses5-dev

 

Problem: mspdebug does not compile because usb.h and readline.h header are missing

Solution: Install libus-dev and libreadline-dev

apt-get install libusb-dev

apt-get install libreadline libreadline-dev