welcome to the world of…

Looks like a small bulb used to indicate something unusual, like a malfunction.

MSP430, GCC, mspdebug

Filed under: Uncategorized — Tags: , , , , , , , , — admin @ 2010-04-10 22:12

This article describes brief steps to setup a Linux development tools for MSP430 MCU – compiler and programmer. MSP430 is not as well linux-supported as AVR or 8051 but fortunately there are ways to make it working.


The easiest way for users of Debian and derived distributions is to add following repository to /etc/apt/sources.list:

deb http://merlin.fit.vutbr.cz/FITkit/download/debian debian fitkit

Then run as root:

# wget http://merlin.fit.vutbr.cz/FITkit/download/debian/debkey.asc -O- | apt-key add -
# apt-get update
# apt-get install msp430-devtools

After that you will have full toolchain. Lets try to compile the following C source:

#include <io.h>

void wait(void)          //delay function
  volatile int i;        //declare i as volatile int
  for(i=0;i<32000;i++);  //repeat 32000 times

int main(void)

  P1DIR=0xFF;            //port 1 = output
  P1OUT=0x01;            //set bit 0 in port 1

  for(;;) {              //infinite loop
    P1OUT=~P1OUT;        //invert port 1
    wait();              //call delay function


Compile the source and generate output suitable for programming the MCU:

$ msp430-gcc -Os -mmcu=msp430x2234 -o test.elf test.c
$ msp430-objdump -DS test.elf > test.lst      # assembler output
$ msp430-objcopy -O ihex test.elf test.hex
$ ls
test.c  test.elf  test.hex  test.lst

It’s done!


For this purpose there is all-in-one tool called mspdebug. It was originaly created for EZ430-RF2500 but now it supports all the MSP430 programmers. I’ve tested it with the RF2500 programmer. The easiest way to program the MCU’s flash is to run the following command:

$ mspdebug -R "prog test.hex"
MSPDebug version 0.6 - debugging tool for MSP430 MCUs
Copyright (C) 2009, 2010 Daniel Beer <daniel@tortek.co.nz>
This is free software; see the source for copying conditions.  There is NO

Trying to open interface 1 on 002
rf2500: warning: can't detach kernel driver: No data available
FET protocol version is 30000002
Configured for Spy-Bi-Wire
Set Vcc: 3000 mV
Device: MSP430F22xx
Writing 120 bytes to e000...
Writing  32 bytes to ffe0...

It’s done!


Next time…


  1. Note in the highlighted code the #include statement (using firefox) shows the lt and gt html formatting code this should be #include
    . Not sure if it will even show up here right!!!

    Comment by Scott Petler — 2011-02-16 @ 03:15

  2. Hi! This is a “bug” in the syntax highlighter plugin. Fixed. Thanks!

    Comment by admin — 2011-02-16 @ 11:26

  3. Is there a license that this code is under? I’d like to redistribute it (with proper credit of course) on my site.

    Comment by David DiPaola — 2011-06-19 @ 14:57

  4. It is a fork of GNU GCC which is distributed under GNU GPL. It should/must have the same license.

    Comment by admin — 2011-06-19 @ 18:38

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.