Sunday, November 17, 2013

Debug Stellaris Lauchpad com OpenOCD

Desenvolver sem debug é tenso.



Depois de encontrar o projeto http://energia.nu que é um port da API do Arduino para Stellaris e MSP430 descobri que existe o mesmo problema do Arduino, não tem debug avançado.


Energia é um clone do Arduino para Stellaris / Tiva C / MSP430

Estendendo o processo investigativo, descobri o toolchain usado no Energia
O Energia usa a toolchain GCC do Yagarto [ http://www.yagarto.org/ ]
Dai que essa toolchain já vem com o  "arm-none-eabi-gdb.exe" e "arm-none-eabi-gcc.exe".
Isso é um bom sinal, já tem o GDB pronto para rodar, só não tem contato dele com a IDE.

É ai que entra em cena o OpenOCD (Open On-Chip-Debugger) que é uma ferramenta ao estilo Linux, que faz interface com praticamente todos os hardware de debug existentes na Terra!
Para minha alegria a partir da versão 0.7.0 do OpenOCD, a interface ICDI da Stellaris e Tiva C, já são suportadas automagicamente.

É só extrair e executar com a linha de comando acima que já tomou posso do debug da Stellaris.
No caso do windows 8.1 64 bit, só funciona com os binários da pasta bin-x64, tentei com a bin no windows 8.1 64 bit, mas só deu problema.
Uma vez aberto o OpenOCD, agora entra a parte de compilar uma aplicação com flags de Debug do GCC e usar o GDB para depurar.




Outra toolchain GCC muito boa é a do Linaro.
http://www.linaro.org/downloads/
http://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q1-update/+download/gcc-arm-none-eabi-4_7-2013q1-20130313-win32.exe