= Herramientas de Programación y Depurado = El proyecto ''GNU-ARM toolchain'' es el compilado de las herramientas tradicionales del ''GNU toolchain'' configuradas para generar o reconocer código ARM. Esto significa que dentro de todos los proyectos que integran el ''GNU toolchain'' ya se encuentran lo necesario para generar la herramienta ''GNU-ARM'' específica. El mantenimiento y mejoras de la "porción ARM" que tienen estas herramientas, está realizada por comunidades en general auspiciadas por ARM Holdings plc. Estas mismas comunidades realizan Pre-built que se pueden bajar de paginas específicas y que libera a los usuarios del tedioso proceso de bajar cada herramienta (gcc, ld, gdb, etc) y realizar el compilado de las mismas para ARM. El proyecto de estas ''GNU-ARM toolchain'' es el siguiente https://launchpad.net/gcc-arm-embedded/ Dentro de esta misma página, se puede encontrar un link a un proyecto para Ubuntu, él cual permite una fácil instalación y actualización de mismo, al agregar un repositorio especifico para luego instalar y mantener el proyecto con las herramientas de administración de paquetes de Ubuntu. https://launchpad.net/~terry.guo/+archive/gcc-arm-embedded En este último se encuentra un instructivo para instalar las herramientas. Estos pasos se pueden resumir de la siguiente manera * Paso 1: Agregar el repositorio al directorio source.list.d, para ello se abre una terminal y se ingresa {{{ sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded }}} * Paso 2: Se actualiza el repositorio ingresando {{{ sudo apt-get update }}} * Paso 3: Se instala el "toolchain" escribiendo {{{ sudo apt-get install gcc-arm-none-eabi }}} * Paso 4: Se instala el debugger (gdb) escribiendo {{{ sudo apt-get install gdb-arm-none-eabi }}} En caso que esta ultima instalación termine con un mensaje de error, se puede forzar la misma escribiendo {{{ sudo dpkg -i --force-overwrite /var/cache/apt/archives/gdb-arm-none-eabi }}} Antes de oprimir enter, se presiona la tecla tab para que se complete el archivo gdb-arm-none-eabi_X.X.XX.XXXXXX.deb con la versión descargada, completado el nombre con la extensión .deb se oprime enter para realizar la instalación. Una vez instalado el paquete, se tendrá las herramientas con un prefijo '''arm-none-eabi-''' == DEBUG == Se puede realizar con ddd o con arm-none-eabi-gdb --tui === ddd === Esta herramienta se instala de los repositorios {{{ apt-get install ddd }}} Luego para correr se procede de la siguiente forma {{{ ddd --eval-command="target sim" --debugger arm-none-eabi-gdb ex1.elf }}} Donde '''ex1.elf''' es la aplicación, '''arm-none-eabi-gdb''' es la versión del gdb que el ddd usará y '''target sim''' es para que utilice el simulador Al arrancar aparecerá el programa fuente y abajo una ventana con la consola de gdb, en esa ventana se escribe '''load''' Luego para hacer un '''break point''' se procede con el botón derecho en la linea requerida Finalmente haciendo click en el botón '''run''' se corre el programa === gdb --tui === Para realizar un debug con esta herramienta no es necesario instalar nada. Se debe ejecutar {{{ arm-none-eabi-gdb --tui }}} luego dentro de este programa se escribe {{{ target sim load (nombre del .elf) file (nombre del .elf) }}} Aparecerá en una ventana el fuente a depurar, escribiendo {{{ break nn}}} se hace un break point (nn es el numero de linea que te aparece al costado izquierdo del archivo fuente) un tutorial de la herramienta se puede ver en http://sourceware.org/gdb/onlinedocs/gdb/TUI.html