We thank Chris Snyder for his contribution on setting up this environment. |
mspgcc can be used as the development environment for the following platforms:
|
gcc is the ubiquitous open-source C compiler. mspgcc is its extension to support the TI MSP430 micro-controller.
We use the following versions in the OpenWSN team:
tool | version |
---|---|
msp430-gcc | msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 patched to 20120502) |
msp430-ar | GNU ar (GNU Binutils) 2.21.1 (mspgcc LTS 20120406 patched to 20120502) |
msp430-ranlib | GNU ranlib (GNU Binutils) 2.21.1 (mspgcc LTS 20120406 patched to 20120502) |
The following steps were tested on Ubuntu 12.04LTS 64bit.
|
|
To test that the installation was successfully, invoke the msp430-gcc
program with the --version
switch to have it print its version:
C:\Users\Thomas>msp430-gcc --version msp430-gcc (GCC) 4.6.3 20120301 (mspgcc LTS 20120406 patched to 20120502) Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
The OpenWSN project uses SCons as its build environment. Refer to the Installation instructions for SCons.
For example, to build the 01bsp_bsp_timer
project for the TelosB platform, using mspgcc
, and loading the resulting binary on a TelosB connecting to COM30
of your computer, type:
scons board=telosb toolchain=mspgcc bootload=COM30 bsp_bsp_timer |
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.
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/ |
If you have version 3 of the firmware you have 2 options:
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/ |
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