A Texas Instruments Stellaris Launchpad é um kit de desenvolvimento para microcontroladores de 32-bit da família Stellaris (agora TivaC) que conta com um núcleo ARM Cortex-M4. O kit é bastante simples e barato (só 12,99 dólares, com frete grátis e impostos pagos), e possui suporte a kit adicionais, chamados BoosterPacks.

No tutorial de hoje, vamos compilar e instalar as ferramentas necessárias para programar e depurar nossas aplicações na Launchpad, e o melhor de tudo: Tudo Free! (Free como em “Free Beer” e como em “Freedom“).

Stellaris Launchap

Bem, como o título já ilustra, este tutorial deve ser seguido por quem quer criar o ambiente no Fedora 18 ou distros baseadas no Red Hat. Se tu usa o ubuntu ou distros baseadas no Debian recomendo seguir o tutorial do blog KernelHacks parte I, parte II e parte III(em inglês).

OK, vamos ao que interessa. As quatro ferramentas necessárias para o desenvolvimento são:

  • A toolchain: GNU ARM Embedded;
  • As bibliotecas: TivaWare;
  • O gravador: lm4f-flash;
  • O depurador: OpenOCD;

Instalando a toolchain – GNU ARM Embedded

A toolchain é o conjunto de ferramentas que nos permitirá compilar nosso código C/C++ e rodá-lo no nosso processador. Perceba que a target é o próprio processador ARM Cortex-M4, sem sistema operacional algum. Chamamos esse tipo de desenvolvimento de Bare Metal Programming.
Primeiro clique aqui e procure por um arquivo com nome (onde XXXXX é o número da versão):

gcc-arm-none-eabi-XXXXX-linux.tar.bz2

Esse arquivo contém os binários da toolchain para o sistema operacional GNU/Linux (independente da distribuição).

Agora vamos extrair o conteúdo do arquivo. Para isso abra uma o emulador de terminal, por exemplo o gnome-terminal ou o xterm e digite o seguinte:
(lembrete: o símbolo $ significa que o comando deve ser rodado como usuário comum)

$ tar jxvf gcc-arm-none-eabi-XXXXX-linux.tar.bz2

Um diretório com o nome gcc-arm-none-eabi-XXXXX deve ter sido criado.

Eu costumo instalar aplicações que não são fornecidas pelos repositórios da minha distro no diretório /opt, ao menos que você saiba o que está fazendo, recomendo que faça o mesmo.
Então, copie o diretório gcc-arm-none-eabi-XXXXX para o diretório /opt :
(lembre-se uqe o # indica que o comando deve ser executado com privilégios de super usuário – root)

# cp -r gcc-arm-none-eabi-XXXXX /opt/gcc-arm-none-eabi
# chown -R <usuario_normal>:<usuario_normal> /opt/gcc-arm-none-eabi

Por fim, vamos adicionar o caminho com as ferramentas à variável de ambiente PATH:

$ export PATH=$PATH:/opt/gcc-arm-none-eabi/bin

Para testar se tudo ocorreu como esperado digite no terminal:

$ arm-none-eabi-cpp --version

A reposta no terminal deve ser algo como:

arm-none-eabi-cpp (GNU Tools for ARM Embedded Processors) 4.7.3 20130312 (release) [ARM/embedded-4_7-branch revision 196615]
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Instalando as Bibliotecas – TivaWare
O TivaWare é uma biblioteca para acessar os periféricos e outros recursos dos processadores da família TivaC (compatível com os Stellaris LM4F). Clique aqui e baixe o arquivo SW-TM4C-X.X.exe (a versão no dia 31/8/2013 era 1.1). Será necessário preencher um cadastro e concordar com alguns termos.

Após realizar o download, vá ao terminal e descompacte o arquivo.

$ mkdir TivaWare
$ unzip SW-TM4C-1.1.exe -d TivaWare

Em seguida, compile a biblioteca com a toolchain que configuramos no passo anterior.

$ cd TivaWare
$ make

Compilando e instalando o LM4F-Tools e o OpenOCD

Se você chegou até aqui, já pode criar seus próprios códigos, compilá-los e tals. Maaaas, e testar? Ver eles rodando na target mesmo? Hum… Falta pouco! Vamos instalar o OpenOCD e o LM4F-Tools. Para isso vamos baixar algumas dependências:

# yum install flex bison gmp-devel mpfr-devel libmpc-devel ncurses-devel git libc-devel make gcc libyaml-devel PyYAML libusbx libusbx-devel git

Feito?! Ótimo! Agora vamos clonar o repositório do LM4F-Tools. Esse conjuntinho de ferramentas possui uma ferramenta específica que é de nosso o interesse: o LM4F-Flash. Este programinha bem simples serve para gravarmos o nosso programa no microcontrolador.

git clone https://github.com/utzig/lm4tools.git

Agora vivente, vamos baixar a última versão do OpenOCD(no dia desta publicação era a 0.70, a primeira a ter suporte a interface ICDI da Stellaris/Tiva). Acesse o site http://sourceforge.net/projects/openocd/files/openocd/0.7.0/ e faça o download do arquivo .tar.gz e em seguida descompacte-o:

$ tar zxvf openocd-0.7.0.tar.gz
$ cd openocd-0.7.0

Agora vamos compilá-lo e partir pro abraço:

$ ./configure --prefix=/opt/openocd --enable-ft2232_libftdi --enable-ep93xx --enable-at91rm9200 --enable-usbprog --enable-presto_libftdi --enable-jlink --enable-vsllink --enable-rlink --enable-dummy --enable-gw16012 --enable-amtjtagaccel --enable-ti-icdi
$ make
# make install

Agora temos o ecossistema prontinho para brincarmos com a nossa launchpad. No próximo post vamos piscar um led nela, até lá! =)

Anúncios