Stellaris Launchpad no Linux
Para começar este ano novo de 2014, nada que um post técnico com um tutorial.
Na verdade, não pretendo escrever tutoriais aqui neste blog. Principalmente os tutoriais técnicos. O pessoal do embarcados, com minha ajuda, vem fazendo um excelente trabalho neste sentido.
Como este tutorial era um que já estava em rascunho há algum tempo, resolvi concluí-lo e postá-lo.
Este post tem o objetivo de descrever os passos necessários para colocar um ambiente de desenvolvimento em Linux para funcionar em uma placa Stellaris Launchpad.
A minha motivação para este post é apresentar o trabalho que estou fazendo para a parte prática do curso sobre Sistemas Operacionais de Tempo Real que vou ministrar no curso de especialização em sistemas embarcados no SAE em São Paulo. Pretendo compartilhar aqui a minha experiência prática na preparação do material de treinamento.
A Stellaris launchpad é uma placa bem interessante, fornecida pela Texas Instruments a um custo muito baixo e com frete e imposto grátis no site web e-store da Texas. Possui um processador ARM Cortex M4 de 80 MHz, com 256 KB de memória Flash, 32 KB de memória SRAM e 2KB de memória EEPROM, além de diversos periféricos.
Atualmente esta placa foi descontinuada. A família Stellaris passou a se chamar Tiva. Segundo fui informado, a mudança reside na marca apenas, e não no produto. Portanto, o produto será novo, mas o antigo funcionará da mesma forma. E, por isso, pretendo seguir em frente com este estudo e material.
COMPONENTES NECESSÁRIOS PARA O PROJETO
Para desenvolvimento do software embarcado nesta placa, precisamos dos seguintes componentes:
Segue abaixo as instruções:
Instalação dos pacotes necessários para uso das ferramentas no Ubuntu:
apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev \ autoconf texinfo build-essential libftdi-dev git libusb-1.0.0-dev
Criando estrutura de diretório de trabalho
Baixar ultima versão do Eclipse para GCC
tar xzvf ~/Downloads/eclipse-cpp-kepler-R-linux-gtk.tar.gz
Baixar ultima versão do Sourcery Codebench Lite (compilador em linha de comando da Mentor Embedded)
tar xjvf ~/Downloads/arm-2013.05-23-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
Os projetos Lm4Tools e Stellarisware eu fiz um fork dos projetos presentes no Github.
git clone https://github.com/fraviofii/lm4tools.git
git clone https://github.com/fraviofii/stellaris.git
Para compilar o gravador do lm4tools, basta fazer o seguinte:
Criar uma nova configuração de udev, para detecção da placa
echo 'ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", GROUP="users", MODE="0660"' | \ sudo tee /etc/udev/rules.d/99-stellaris-launchpad.rules sudo usermod -aG users <username>
cd /home/prjs/sae git clone
git://openocd.git.sourceforge.net/gitroot/openocd/openocd
git pull http://openocd.zylin.com/openocd refs/changes/22/922/14
./bootstrap ./configure --enable-maintainer-mode --enable-ti-icdi
cp -r openocd/tcl/* openocd-bin
cp openocd/src/openocd openocd-bin
Criar um arquivo sae.environment no diretório /home/prjs/sae com o seguinte conteudo:
PATH=$PATH:/home/prjs/sae/arm-2013.05/bin:/home/prjs/sae/eclipse:/home/prjs/sae/lm4tools/lm4flash:/home/prjs/sae/openocd-bin
Criando o arquivo de configuração do OpenOCD
cd /home/prjs/sae/openocd-bin
wget http://pastebin.com/download.php?i=qXxeYsVx -O LM4F120XL.cfg
Baixando e compilando o Stellarisware
O projeto Stellarisware do github é composto de diversos projetos. É preciso entrar em um dos projetos e chamar a compilação. Para chamar a compilação, basta digitar: make
Para testar, vamos compilar e executar o aplicativo blinky, presente no projeto Stellarisware.
E para carregar na placa, o primeiro passo é ligá-la no PC, através do conector USB no gravador e no PC e em seguida, (para o projeto blinky), digitar:
Aparecem algumas mensagens na linha de comando. Como a carga é rápida, bem como o programa é pequeno, é possível ver rapidamente o aplicativo com os leds piscando.
Trata-se de um guia direto, sem entrar em muitos detalhes, de como implantar um ambiente de desenvolvimento para a placa Stellaris/Tiva para Linux através de ferramentas open source.
Espero que este guia possa ser útil em suas aventuras neste interessante mundo dos microcontroladores.