Bienvenido: Ingresar
location: Diferencias para "WebHome/HerramientasProgramacion/HLaunchpad"
Diferencias entre las revisiones 35 y 36
Versión 35 con fecha 2017-10-11 00:55:07
Tamaño: 6098
Comentario:
Versión 36 con fecha 2020-07-17 23:01:15
Tamaño: 6151
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 94: Línea 94:
== Proyecto CIAA == ##== Proyecto CIAA ==
Línea 96: Línea 96:
La Cátedra utiliza para el desarrollo de los diferentes prácticos una placa EDU-CIAA ##La Cátedra utiliza para el desarrollo de los diferentes prácticos una placa EDU-CIAA
Línea 98: Línea 98:
Esta placa pertenece al proyecto CIAA (Computadora Industrial Abierta Argentina), si desean conocer mas sobre este proyecto, pueden entrar a la página del mismo ##Esta placa pertenece al proyecto CIAA (Computadora Industrial Abierta Argentina), si desean conocer mas sobre este proyecto, pueden entrar a la página del mismo
Línea 100: Línea 100:
http://www.proyecto-ciaa.com.ar/ ##http://www.proyecto-ciaa.com.ar/
Línea 102: Línea 102:
Para la instalación del IDE y de las demás herramientas necesarias seguir los siguientes pasos ##Para la instalación del IDE y de las demás herramientas necesarias seguir los siguientes pasos
Línea 104: Línea 104:
=== Instalación del IDE para la placa de desarrollo EDU-CIAA === ##=== Instalación del IDE para la placa de desarrollo EDU-CIAA ===
Línea 106: Línea 106:
Una vez instalado las herramientas de programación, se continua con los siguientes pasos ##Una vez instalado las herramientas de programación, se continua con los siguientes pasos
Línea 108: Línea 108:
==== OpenOCD ====
Es la herramienta requerida para hacer el puente entre la placa y el depurador.
##==== OpenOCD ====
##Es la herramienta requerida para hacer el puente entre la placa y el depurador.
Línea 111: Línea 111:
En las versiones mas nuevas de Ubuntu, ya viene disponible para instalarlo desde los repositorios junto con las librerías para el manejo del USB. ##En las versiones mas nuevas de Ubuntu, ya viene disponible para instalarlo desde los repositorios junto con las librerías para el manejo del USB.
Línea 113: Línea 113:
{{{ sudo apt-get install openocd }}} ##{{{ sudo apt-get install openocd }}}
Línea 115: Línea 115:
Luego es necesario darles los permisos, bajamos el siguiente archivo: ##Luego es necesario darles los permisos, bajamos el siguiente archivo:
Línea 117: Línea 117:
 [[attachment:99-openocd.rules]] ##[[attachment:99-openocd.rules]]
Línea 119: Línea 119:
y desde una consola y sobre el directorio donde bajamos el archivo, se escribe: ##y desde una consola y sobre el directorio donde bajamos el archivo, se escribe:
Línea 121: Línea 121:
{{{ sudo cp 99-openocd.rules /etc/udev/rules.d/ }}} ##{{{ sudo cp 99-openocd.rules /etc/udev/rules.d/ }}}
Línea 123: Línea 123:
Finalmente para que el OpenOCD tenga permiso desde el usuario a acceder al USB, debemos hacer ##Finalmente para que el OpenOCD tenga permiso desde el usuario a acceder al USB, debemos hacer
Línea 125: Línea 125:
{{{ sudo useradd -plugdev USERNAME }}} ##{{{ sudo useradd -plugdev USERNAME }}}
Línea 127: Línea 127:
Donde {{{USERNAME}}} es el nombre del usuario ##Donde {{{USERNAME}}} es el nombre del usuario
Línea 129: Línea 129:
==== Eclipse ==== ##==== Eclipse ====
Línea 131: Línea 131:
En primer lugar, antes de instalar eclipse se debe instalar Java ##En primer lugar, antes de instalar eclipse se debe instalar Java
Línea 133: Línea 133:
{{{ sudo aptitude install default-jdk }}} ##{{{ sudo aptitude install default-jdk }}}
Línea 135: Línea 135:
Luego se baja el paquete Eclipse desde este link ##Luego se baja el paquete Eclipse desde este link
Línea 137: Línea 137:
https://github.com/gnu-mcu-eclipse/org.eclipse.epp.packages/releases/ ##https://github.com/gnu-mcu-eclipse/org.eclipse.epp.packages/releases/
Línea 139: Línea 139:
el paquete se descomprime en una carpeta y ya es suficiente para comenzar a usarlo ##el paquete se descomprime en una carpeta y ya es suficiente para comenzar a usarlo
Línea 142: Línea 142:
==== Firmware ==== ##==== Firmware ====
Línea 144: Línea 144:
El archivo adjunto contiene el proyecto de firmware, donde se cambiaron algunas configuraciones para ser mas sencillo su uso en modo '''baremetal''' ##El archivo adjunto contiene el proyecto de firmware, donde se cambiaron algunas configuraciones para ser mas sencillo su uso en modo '''baremetal'''
Línea 146: Línea 146:
[[attachment:Firmware_td2.tar.gz]] ##[[attachment:Firmware_td2.tar.gz]]

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/~team-gcc-arm-embedded/+archive/ubuntu/ppa

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:team-gcc-arm-embedded/ppa
  • Paso 2: Se actualiza el repositorio ingresando

sudo apt-get update
  • Paso 3: Se instala el "toolchain" escribiendo

sudo apt-get install gcc-arm-embedded

Instalación del depurador

La aplicación para depurar un proyecto es el GDB, herramienta utilizada en cualquier proyecto GNU, pero en este caso compilado para depurar código ARM.

Si bien el depurador está preparado para depurar programas en ARM, el problema es que este programa debe correr primero en una arquitectura ARM, para esto tenemos dos soluciones:

  • Simulación: un núcleo ARM es simulado por el propio GDB y allí corre nuestra aplicación.
  • La aplicación corre en un hardware (una placa externa) y se depura por una conexión remota (In-Circuit Debugging)

Para los ejemplos y primeras pruebas en ensamblador utilizaremos la primera solución, el problema es que por ser utilizada con fines académico no está disponible en las últimas versiones del GDB para ARM, deberemos entonces usar una versión anterior cuando se quiera usar esta característica

  • Bajar versión anterior de GDB (64bits)

arm-old-gdb

  • Copiar este archivo al directorio donde se instaló el GNU ARM (/usr/bin)

Posicionado sobre el directorio donde bajamos el archivo hacemos

sudo cp arm-old-gdb /usr/bin

  • Dar permisos de ejecución al achivo copiado

sudo chmod +x /usr/bin/arm-old-gdb

Una vez instalado el paquete, se tendrá todas las herramientas GNU para ARM identificadas con el prefijo arm-none-eabi- y el depurador arm-old-gdb solo para el caso de necesitar el simulador

DEBUG

Para realizar un debug se procede de la siguiente manera

Se debe ejecutar

arm-old-gdb --tui

luego dentro de este programa se escribe

target sim
load {archivo .elf a depurar}
file
list

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

UntitledWiki: WebHome/HerramientasProgramacion/HLaunchpad (última edición 2020-07-17 23:01:15 efectuada por GuillermoSteiner)