This guide is, for the most part, based off of this document. I'm duplicating much of it here because 1) if it goes down we'll have lost a valuable resource, 2) some of what he says is outdated/wrong, 3) he's wordier than I am, 4) my methods are a bit easier, I think.
To get started, install the following software. You can get all this stuff through AUR, and its dependencies through pacman.
Next, you need a make file. This one has worked for me. Change the -mmcu= flag to reflect whatever chips you're working with.
CC=msp430-gcc CFLAGS=-Os -Wall -g -mmcu=msp430g2553 OBJS=main.o all: $(OBJS) $(CC) $(CFLAGS) -o main.elf $(OBJS) %.o: %.c $(CC) $(CFLAGS) -c $< clean: rm -fr main.elf $(OBJS)
Get your hands on some sample code to play with, something like this that blinks an LED works fine.
// Copyright 2012 Matthew Hiles #include <msp430g2553.h> #define pause for (i=0; i < 100; i++) wait(7000) void wait(int ticks) { TAR=0; while(TAR < ticks) _NOP(); } void main(void) { int i = 0; WDTCTL = WDTPW + WDTHOLD; // stop watchdog TACTL = TASSEL_2 | MC_2; // setup TXD and RXD P1SEL = 0; // all ports GPIO P1DIR = 0xFF; // all is output while(1) { P1OUT ^= (BIT0); // toggle bit0 (red LED) pause; // wait } }
Now, type “make”. If the gods are smiling upon you, this should happen:
[john@TX100 blinktest]$ make msp430-gcc -Os -Wall -g -mmcu=msp430g2553 -o main.elf main.o [john@TX100 blinktest]$ ls main.c main.elf main.o makefile
If it doesn't, check your code, your makefile, all that good stuff. I'm bad at troubleshooting this because I personally have never had it go wrong.
Now, start mspdebug:
[john@TX100 blinktest]$ sudo mspdebug rf2500 .... A bunch of jibberish ... (mspdebug)
Now you're at the (mspdebug) prompt, and you can do things like program code to your msp, erase your msp, look at the data on the msp, etc. I don't know what all I can do, but I get the feeling that it's fairly powerful if you know what you're doing.
To program your code onto the chip, first type 'erase' at the prompt to make sure the chip is wiped. This will take about a second. Now type 'prog main.elf' and whamo-blamo, you've programmed your MSP430 in linux.
If you want to do realtime debugging and stuff you can mess around with msp430-gdb. I've not found much use for it yet, but I'm sure that one day there will be. It's a little bit complicated, so if you're interested in it you can read about it in the guide linked at the top of this page.