Après lecture du manuel mspgcc sur sourceforge (qui indique la procédure d'installation tout à la fin du manuel (!!! hum !!! ;-( )) ... en plus ça n'arrête pas de causer en assembleur ... grrr !

Tout d'abord l'essai d'un package compilé (.rpm) n'a pas réussi ... Alors, on s'attaque directement aux sources ...

Ce qui est fastidieux est de récupérer les sources depuis sourceforge et ailleurs ...

La procédure d'installation a fonctionnée pour binutils et gcc et la libc:
$ tar --bzip2 -xf binutils-2.14.tar.bz2
$ cd binutils-2.14
$ ./configure --target=msp430 --prefix=/usr/local/msp430
$ make
$ su
$ make install

...

$ tar --bzip2 -xf gcc-core-3.2.3.tar.bz2

$ cp -a gcc/gcc-3.3/* gcc-3.2.3
$ cd gcc-3.2.3
$ ./configure --target=msp430 --prefix=/usr/local/msp430
$ make
$ su
$ make install

...

$ cd msp430-libc/src

$ make
$ su
$ make install



En revanche, ça a foiré pour gdb-5.1.1.tar.bz2 (me rappelle plus quel était le problème ;-P )
En cherchant de l'aide sur google, je suis tombé sur un script qui proposait une installation automatique ;-)

Cela semblait très intéressant ;-) (le script utilisait le client CVS (d'où installation de CVS), et récupérait les .tar par ftp), malheuresement, un fichier (msp-gdbproxy) n'était pas récupérable par ftp, et semblait difficilement accessible sur internet par ailleurs.

Je l'ai néanmoins trouvé ici et
Malgré ce script, l'installation ne réussisait toujours pas : avec une mauvaise version de automake et de autoconf : pb de aclocal9 .

Finalement, je tombe sur LE Lien qui sauve :
(à noter également que la consultation du document en allemand permettra de résoudre un petit problème pour l'utilisation de gdbproxy)
une erreur cependant : la libHIL.so doit être installer dans /usr/lib et pas dans /usr/local/lib

Installation on Unix/Linux/Cygwin

 # become root; you actually only need this for "make install" and when
 # you copy files to the target directory (/usr/local/msp430)
 su

 mkdir /tmp/mspgcc
 cd /tmp/mspgcc

 #binutils

 wget ftp://sources.redhat.com/pub/binutils/releases/binutils-2.14.tar.bz2
 tar xjvf binutils-2.14.tar.bz2

 cd binutils-2.14
 ./configure --prefix=/usr/local/msp430 --target=msp430
 make
 make install
 cd ..

 export PATH=/usr/local/msp430/bin:$PATH

 #gcc

 wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.2.3/gcc-core-3.2.3.tar.bz2
 tar xjvf gcc-core-3.2.3.tar.bz2

 cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mspgcc co gcc/gcc-3.3
 cp -r gcc/gcc-3.3/* gcc-3.2.3/

 cd gcc-3.2.3
 ./configure --prefix=/usr/local/msp430 --target=msp430
 make
 make install
 cd ..

 #msp430-libc

 cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mspgcc co msp430-libc

 cd msp430-libc/src
 make
 make install
 cd ../..

 #gdb

 wget gdb-6.0.tar.bz2
 tar xjvf gdb-6.0.tar.bz2

 cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mspgcc co gdb/gdb-current
 cp -r gdb/gdb-current/* gdb-6.0/

 cd gdb-6.0
 ./configure --prefix=/usr/local/msp430 --target=msp430
 make
 make install
 cd ..

 #JTAG hardware access library
 cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mspgcc co jtag

 cd jtag/hardware_access
 make
 mv libHIL.so /usr/local/lib    #### ATTENTION : il faut mettre libHIL.so dans /usr/lib
 ldconfig
 cd ../..

 #gdbproxy

 wget http://twtelecom.dl.sourceforge.net/sourceforge/mspgcc/msp430-gdbproxy
 chmod +x msp430-gdbproxy
 mv msp430-gdbproxy /usr/local/msp430/bin/

 #pyJTAG
 cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mspgcc co python
 cd ../python
 python setup.py install # You can use "python2.3", etc. instead.
 cd ../..

 cd python  # Note that this is a different "python" directory.
 python setup.py install # Use the exact same "python" command as before

 chmod 755 msp430-jtag.py
 # If you are using anything other than "python" (e.g. "python2.3") you will
 # need to edit "msp430-jtag.py" to change "python" in the top line
 # (e.g to "python2.3").
 cp msp430-jtag.py /usr/local/msp430/bin



Voilà l'installation, est réussie \o/ !!!

Pour que tout marche bien, on doit avoir accès à certains chemins : pour cela on met dans le .bash_profile
PATH=$PATH:/usr/lib
PATH=$PATH:/usr/local/lib
PATH=$PATH:/usr/local/msp430
PATH=$PATH:/usr/msp430
PATH=$PATH:/usr/local/msp430/lib
PATH=$PATH:/usr/local/msp430/msp430/include

export PATH

#puis faire : $ source .bash_profile

on peut alors compiler le test (test1.c) qui fait clignoter la led toutes les secondes :

#include 

void wait(void);         //prototype for wait()

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
  }
  
}

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


on compile :
msp430-gcc  -mmcu=msp430x169 -g -Os -o test1.elf test1.c 
Nous ne sommes pas encore au bout de nos peines, puisque l'étape suivante qui devait-être :
Starting gdbproxy

The next step is starting gdbproxy, which is responsible for the communication between GDB and the FET:

 msp430-gdbproxy --port=2000 msp430

If your FET is properly connected to the parallel port, you should see a message like the following:

info:      msp430: Target device is a 'MSP430F169' (type 37)
notice:    msp430-gdbproxy: waiting on TCP port 2000

donne :

open: No such file or directory
error:     msp430: Could not initialize device interface (1)

La solution (trouvée dans la doc en allemand) est de taper en tant que root :

mknod /dev/parport0 c 99 0 

Il est également conseillé d'avoir un fichier .gdbinit contenant :

set remoteaddresssize 64
set remotetimeout 999999
target remote localhost:2000


On peut alor utiliser ddd :

 ddd --debugger msp430-gdb test1.elf

Now you should create a few buttons by adding the following lines to the text field in "Commands / Edit Buttons (Console Buttons)":

target remote localhost:2000 // Connect
monitor erase all // Erase
load // Load
monitor reset // Reset

On utilise les boutons Connect, Erase, Load puis ... Cont (continue) (!) (et pas Run) .... voilà, ça clignote \o/ !!!

Pour finir un petit rappel de logiciels nécessaires :
  • cvs
  • python
  • ddd