Seguimos con el frenesí instalador.
Ahora le toca el turno al LaunchPad Tiva C series TM4C123G, en Ubuntu 14.04 amd64.
#Create install path
cd Install
mkdir tivaC
cd tivaC
Arm-none-eabi
Hay otros compiladores para arm, pero éste parece ser el más utilizado en este momento. Sirve para cortex M0/0+/3/4; y cortex R4/5/7https://launchpad.net/gcc-arm-embedded/
#Dependencies:
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
#These are 32 bit dependencies previously provided by ia32-libs, not anymore.
#Download
wget https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q2-update/+download/gcc-arm-none-eabi-4_8-2014q2-20140609-linux.tar.bz2
#Install
tar -xvf gcc*
#cp or mv, as you wish
sudo cp -r gcc-arm-none-eabi-4_8-2014q2 /usr/local/
#sudo mv -r gcc-arm-none-eabi-4_8-2014q2 /usr/local/
#If you need to uninstall, just remove the folder /usr/local/gcc-arm-none-eabi-4_8-2014q2
#Verify
/usr/local/gcc-arm-none-eabi-4_8-2014q2/bin/arm-none-eabi-gcc --version
#Output should be
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.8.4 20140526 (release) [ARM/embedded-4_8-branch revision 211358]
Copyright (C) 2013 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.
Referencia:
http://gnuarmeclipse.livius.net/blog/toolchain-install/
Librerías de TI
Ahora que tenemos el compilador, vamos al sitio de texas para descargar y compilar las librerías para la familia tivaC. Buscar sw-tm4c, los enlaces cambian frecuentemente, por ahora está en:
SW-TM4C-2.1.0.12573.exe
Se puede entrar desde:
http://software-dl.ti.com/tiva-c/SW-TM4C/latest/index_FDS.html
o:
http://www.ti.com/tool/sw-tm4c-usbl
Hay que solicitar una licencia (gratuita) de uso, por eso no puedo poner un comando de descarga directa. Con los siguientes comandos ya estamos usando el compilador que instalamos en el paso anterior.
En la referencia anterior recomienda enfáticamente no agregar a la variable de entorno path la ubicación del arm-none-eabi, para que si agregamos otras versiones del compilador a futuro (gcc-arm-none-eabi<>4.8) no haya problemas. No me parece un mal consejo y lo vamos a respetar.
Pero es necesario que el makefile del tivaWare pueda encontrar los binarios para poder compilar las librerías. Por lo tanto exportamos el path pero no hacemos el cambio permanente (no tocamos /etc/environment), tendrá validez solo en la consola utilizada hasta que la cerremos.
Si en el futuro queremos recompilar la librería con otra versión de gcc-arm-none-eabi, o bajamos una versión más nueva de tivaWare; debemos hacer lo mismo: agregar el path antes de compilar:
#Append temporarily path to arm-none-eabi binaries,
#just to compile the tivaWare library:
export PATH=$PATH:/usr/local/gcc-arm-none-eabi-4_8-2014q2/bin
#Build
mkdir tivaWare
cd tivaWare/
unzip ../SW-TM4C-2.1.0.12573.exe
make 2>&1 | tee mo
cd ..
LM4flash
Este es el programador/flasher. No es que no se puede programar con el openOCD, pero sugieren este programador por ser más rápido.
#Download
git clone https://github.com/utzig/lm4tools.git
#Install
cd lm4tools/lm4flash/
make
#Now you have the lm4flash binary, copy to usr
sudo cp lm4flash /usr/bin
cd ../..
Referencia:
http://www.incrediblediy.com/2013/04/programming-ti-stellaris-launchpad-on.html
OpenOCD
http://openocd.sourceforge.net/
Este es el depurador que nos va a permitir ejecutar los programas paso a paso. Sería el equivalente a mspdebug para msp430.
#Dependencies
sudo apt-get libftdi-dev libhidapi-dev
#Download
# Check: http://sourceforge.net/projects/openocd/files/openocd/
#Current version is 0.8.0:
wget http://ufpr.dl.sourceforge.net/project/openocd/openocd/0.8.0/openocd-0.8.0.tar.gz
tar xvf openocd-0.8.0.tar.gz
cd openocd-0.8.0/
#Install
#I've just enabled everything I could found:
./configure --enable-ftdi --enable-ep93xx --enable-at91rm9200 --enable-usbprog --enable-presto_libftdi --enable-jlink --enable-vsllink --enable-rlink --enable-dummy --enable-gw16012 --enable-amtjtagaccel --enable-ti-icdi --enable-maintainer-mode --enable-cmsis-dap --enable-hidapi-libusb 2>&1 | tee co
#Output:
OpenOCD configuration summary
--------------------------------------------------
MPSSE mode of FTDI based devices yes
ST-Link JTAG Programmer yes (auto)
TI ICDI JTAG Programmer yes
Keil ULINK JTAG Programmer yes (auto)
Altera USB-Blaster II Compatible yes (auto)
Segger J-Link JTAG Programmer yes
OSBDM (JTAG only) Programmer yes (auto)
eStick/opendous JTAG Programmer yes (auto)
Andes JTAG Programmer yes (auto)
Versaloon-Link JTAG Programmer yes
USBProg JTAG Programmer yes
Raisonance RLink JTAG Programmer yes
Olimex ARM-JTAG-EW Programmer yes (auto)
CMSIS-DAP Compliant Debugger yes
#Build and install
make 2>&1 | tee mo
sudo make install 2>&1 | tee moi
cd ..
udev
echo 'ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0660", GROUP="plugdev" #tiva launchpad' | sudo tee /etc/udev/rules.d/62-tiva.rules
sudo service udev restart
Verificación
Ahora ya podemos ir a uno de los ejemplos de tivaWare y ver si podemos hacer parpadear un led!!!.
Encufar el tiva launchpad, poner el switch en posición debug:
#Test lm4flash
cd ~/Install/tivaC/tivaWare/examples/boards/ek-tm4c123gxl/blinky/gcc/
lm4flash blinky.bin
#Should return something like:
Found ICDI device with serial: 0E2029AF
ICDI version: 9270
#Test openocd
openocd --file /usr/local/share/openocd/scripts/board/ek-tm4c123gxl.cfg
#Output:
Open On-Chip Debugger 0.8.0 (2014-08-07-17:24)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : This adapter doesn't support configurable speed
Info : ICDI Firmware version: 9270
Info : tm4c123gh6pm.cpu: hardware has 6 breakpoints, 4 watchpoints
#Exit with Ctrl-C
Desafortunadamente no podemos controlar la ejecución desde el openocd escribiendo comandos como con el mspdebug, sino que se debe hacer a traves del puerto 3333 usando gdb. Ver:
http://openocd.sourceforge.net/doc/html/GDB-and-OpenOCD.html#GDB-and-OpenOCD
De todas maneras, con lo anterior ya sabemos que hay conexión, y no vamos a usar openocd y gdb a mano, sino a través de Eclipse.
Configuración de Eclipse
Lo hice siguiendo a la par dos excelentes referencias. La referencia 2 es para la instalación de Stellaris en Ubuntu, que es el antecesor de los micros tiva tm4c.
La referencia 1 indica las modificaciones necesarias en cada paso para configurar los micros tiva tm4c:
- http://forum.stellarisiti.com/topic/1745-complete-tiva-ide-using-eclipse-on-mac-including-flash-and-debug/
- http://kernelhacks.blogspot.com.ar/2012/11/the-complete-tutorial-for-stellaris_25.html
Al fin!!!, creo que debería funcionar, si hay algún problema con las instrucciones no dejen de mencionarlo en los comentarios y vemos que podemos hacer.
Salud!!!!.
No hay comentarios:
Publicar un comentario