Atenção: o tutorial foi testado em uma versão recém instalada do Ubuntu 7.10. Os passos devem ser iguais para outras distribuições, exceto o primeiro (pegar os pacotes).
Para começar, abra um terminal e pegue todos os pacotes necessários:
sudo apt-get install build-essential gcc-3.3 cvs python-dev libncurses-dev
crie uma pasta qualquer para colocar os arquivos utilizados durante a compilação:
$ mkdir msp
$ cd msp
Compilação dos arquivos
binutils - utilizado pelo mspgcc
$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.18.tar.bz2gcc - o compilador mspgcc
$ tar xjvf binutils-2.18.tar.bz2
$ cd binutils-2.18
$ ./configure --prefix=/usr/local/msp430 --target=msp430
$ make
$ sudo make install
$ cd ..
$ echo "PATH=/usr/local/msp430/bin:$PATH' >> ~/.bashrc
$ export PATH=/usr/local/msp430/bin:$PATH
$ wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.2.3/gcc-core-3.2.3.tar.bz2msp430-libc - biblioteca libC para o msp430
$ wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.2.3/gcc-g++-3.2.3.tar.bz2
$ tar xjvf gcc-core-3.2.3.tar.bz2
$ tar xjvf gcc-g++-3.2.3.tar.bz2
$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc login
$ cvs -z3 -d:pserver:anonymous@mspgcc.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 --enable-languages=c,c++
$ make
$ sudo make install
$ cd ..
$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc logingdb - debugger
$ cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co msp430-libc
$ cd msp430-libc/src
$ make
$ sudo make install
$ cd ../..
Para compilar o gdb é necessário utilizar o gcc 3.3 ou 3.4
$ wget http://mirrors.redwire.net/pub/sources.redhat.com/gdb/old-releases/gdb-6.0.tar.bz2JTag - biblioteca para acesso ao hardware
$ tar xjvf gdb-6.0.tar.bz2
$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc login
$ cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co gdb/gdb-current
$ cp -r gdb/gdb-current/* gdb-6.0/
$ cd gdb-6.0
$ CC=gcc-3.3 ./configure --prefix=/usr/local/msp430 --target=msp430
$ CC=gcc-3.3 make
$ sudo make install
$ cd ..
$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc logingdbproxy - faz a conexão entre o gdb e o microcontrolador
$ cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co jtag
$ cd jtag/hardware_access
$ make
$ sudo mv libHIL.so /usr/local/lib
$ sudo ldconfig
$ cd ../..
Acesse o endereço http://sourceforge.net/project/showfiles.php?group_id=42303 e baixe os arquivos gdbproxy e libMSP430.so para a pasta atual
$ chmod +x msp430-gdbproxymsp430-JTag - permite a gravação do chip, entre outros recursos
$ sudo mv msp430-gdbproxy /usr/local/msp430/bin/
$ sudo mv libMSP430.so /usr/lib/
$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc login
$ cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co python
$ cd python
$ sudo python setup.py install
$ chmod +x msp430-jtag.py
$ sudo cp msp430-jtag.py /usr/local/msp430/bin
Referências para aprender a programar o MSP430
http://www.ti.com/msp430 - site oficial do MSP430
http://www.mikrocontroller.net/articles/MSP430_Codebeispiele - use com cuidado pois contém alguns erros (em alemão :/)
http://focus.ti.com/lit/ug/slau049f/slau049f.pdf - Guia do usuário(inglês)
http://mspgcc.sourceforge.net/ - Site oficial do mspgcc
Espero que gostem do tutorial. Deixo para outro post dar exemplos de uso e ensinar como utilizar o ddd para debugar o código diretamente no circuito.
3 comentários:
Olá! Cara, legal o seu tutorial. Uso o MSP430, mas não sabia que há um compilador dele nativo para Linux. Mas... Depois que o código é gerado, como você faz para grava-lo no microcontrolador? O legal da ferramenta para Windows que vem com o MSP é a possibilidade de gravação e debug no mesmo ambiente.
Oi Alex... para compilar e gravar um código vc pode usar os seguintes comandos..
msp430-gcc -O2 -mmcu=msp430x1612 teste.c -o teste.o
msp430-objcopy -O ihex teste.o teste.hex
msp430-jtag.py -er teste.hex
No linux eu já li em algum lugar que você pode usar o eclipse para fazer tudo, mas nunca usei.
Muito legal o seu artigo!! Utilizei o mspgcc há algum tempo atrás porém não cheguei a desenvolver nada para ele. Hoje utilizo o IAR, porém vendo seu artigo até me animei a instalá-lo novamente.
Postar um comentário