segunda-feira, 26 de novembro de 2007

Instalando o mspgcc no Linux

Os microcontroladores da família MSP430, da Texas Instruments, são fáceis de usar e recheados de recursos como conversor AD, sensor de Temperatura, conectividade serial (RS232, SPI, i2c), hardware dedicado para multiplicação, DMA, além do baixo custo e consumo de energia. Neste post vou mostrar como instalar todas as ferramentas necessárias para desenvolvimento em cima dessa família.

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.bz2
$ 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
gcc - o compilador mspgcc
$ wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.2.3/gcc-core-3.2.3.tar.bz2
$ 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 ..
msp430-libc - biblioteca libC para o msp430
$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc login
$ cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co msp430-libc
$ cd msp430-libc/src
$ make
$ sudo make install
$ cd ../..
gdb - debugger
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.bz2
$ 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 ..
JTag - biblioteca para acesso ao hardware
$ cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc login
$ 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 ../..
gdbproxy - faz a conexão entre o gdb e o microcontrolador
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-gdbproxy
$ sudo mv msp430-gdbproxy /usr/local/msp430/bin/
$ sudo mv libMSP430.so /usr/lib/
msp430-JTag - permite a gravação do chip, entre outros recursos
$ 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.