Bienvenido: Ingresar
location: Diferencias para "WebHome/HerramientasProgramacion/HLaunchpad"
Diferencias entre las revisiones 16 y 20 (abarca 4 versiones)
Versión 16 con fecha 2014-10-07 18:14:09
Tamaño: 6831
Comentario:
Versión 20 con fecha 2016-08-03 22:19:59
Tamaño: 6887
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 109: Línea 109:
== DEBUG PLACA == ##== DEBUG PLACA ==
Línea 111: Línea 111:
Para el debug en forma remota a la placa de desarrollo o lo que comúnmente se denomina on-chip debugger (OCD), se debe instalar una herramienta que permita la comunicación entre el debug y la placa de desarrollo conectada esta última por medio de un cable USB a la PC
Existen al menos dos grandes proyectos que realizan esta operación PyOCD y OpenOCD.
A continuación se desarrolla la explicación para instalar el PyOCD
##Para el debug en forma remota a la placa de desarrollo o lo que comúnmente se denomina on-chip debugger (OCD), se debe instalar una herramienta que permita la comunicación entre el ##debug y la placa de desarrollo conectada esta última por medio de un cable USB a la PC
##Existen al menos dos grandes proyectos que realizan esta operación PyOCD y OpenOCD.
##A continuación se desarrolla la explicación para instalar el PyOCD
Línea 115: Línea 115:
=== PyOCD ===
PyOCD es un proyecto desarrollado en Python que como se explico anteriormente realiza la comunicación entre una placa de desarrollo y el GDB, esto lo realiza por el lado de la placa a través del protocolos CMSIS-DAP y por el lado del GDB, abriendo un socket para que este se conecte.
##=== PyOCD ===
##PyOCD es un proyecto desarrollado en Python que como se explico anteriormente realiza la comunicación entre una placa de desarrollo y el GDB, esto lo realiza por el lado de la placa ##a través del protocolos CMSIS-DAP y por el lado del GDB, abriendo un socket para que este se conecte.
Línea 118: Línea 118:
Pasos para instalar PyOCD ##Pasos para instalar PyOCD
Línea 120: Línea 120:
 1. Instalar librería de comunicación usb {{{sudo apt-get install libusb-1.0-0-dev}}}
 1. Instalar lenguaje python {{{sudo apt-get install python}}}
 1. Instalar manejador de usb para python (proyecto (pyUSB), esta herramienta se puede bajar desde https://github.com/walac/pyusb
    a. Se descomprime en un directorio.
    a. dentro de ese directorio se corre {{{sudo python setup.py install}}}.
 1. Instalar la herramienta pyUSB, la misma se puede bajar desde https://github.com/mbedmicro/pyOCD
    a. Se descomprime en un directorio.
    a. dentro de ese directorio se corre {{{python setup.py install}}}.
## 1. Instalar librería de comunicación usb {{{sudo apt-get install libusb-1.0-0-dev}}}
## 1. Instalar lenguaje python {{{sudo apt-get install python}}}
## 1. Instalar manejador de usb para python (proyecto (pyUSB), esta herramienta se puede bajar desde https://github.com/walac/pyusb
## a. Se descomprime en un directorio.
## a. dentro de ese directorio se corre {{{sudo python setup.py install}}}.
## 1. Instalar la herramienta pyUSB, la misma se puede bajar desde https://github.com/mbedmicro/pyOCD
## a. Se descomprime en un directorio.
## a. dentro de ese directorio se corre {{{python setup.py install}}}.
Línea 129: Línea 129:
Cada herramienta tiene un readme con mas detalles de la instalación ##Cada herramienta tiene un readme con mas detalles de la instalación
Línea 131: Línea 131:
==== Ejecución del PyOCD ====
para realizar el debug se realizan los siguientes pasos
 1. Conectar la placa de desarrollo a la PC
 1. En el directorio de la herramienta pyOCD hacemos {{{cd test}}}
 1. Lanzamos el pyOCD escribiendo {{{sudo python gdb_server.py}}} (ejecutarlo como root es necesarios si el usuario no tiene permiso para el usb, en caso contrario se puede eliminar el sudo).
 1. En otra consola se corre el arm-xxxxx-gdb --tui
 1. Dentro del gdb, se escribe {{{target remote localhost:3333}}}
 1. Ahora se procede como antes con las operaciones de load y file
 1. El programa ahora esta grabado en la placa y detenido, se procede a realizar un break point para luego continuar, (la operación '''r''' o '''run''' no es permitida, en cambio se utiliza la operación '''c''' o '''continue''').
##==== Ejecución del PyOCD ====
##para realizar el debug se realizan los siguientes pasos
## 1. Conectar la placa de desarrollo a la PC
## 1. En el directorio de la herramienta pyOCD hacemos {{{cd test}}}
## 1. Lanzamos el pyOCD escribiendo {{{sudo python gdb_server.py}}} (ejecutarlo como root es necesarios si el usuario no tiene permiso para el usb, en caso contrario se puede eliminar el sudo).
## 1. En otra consola se corre el arm-xxxxx-gdb --tui
## 1. Dentro del gdb, se escribe {{{target remote localhost:3333}}}
## 1. Ahora se procede como antes con las operaciones de load y file
## 1. El programa ahora esta grabado en la placa y detenido, se procede a realizar un break point para luego continuar, (la operación '''r''' o '''run''' no es permitida, en cambio se ##utiliza la operación '''c''' o '''continue''').

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)

Si bien las herramientas instaladas ya poseen la herramienta para realizar debug en GNU denominada gdb, este no tiene activado el simulador (target sim)

Para instalar una versión de gdb que permita simular se debe realizar lo siguiente:

Usuario de Ubuntu 14.04 o superior

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

Importante 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, luego se oprime enter para realizar la instalación.

Usuario de Ubuntu anteriores

Bajar el siguiente paquete

o para el caso de 64 bits

luego en una consola, ejecutar

 sudo dpkg -i --force-overwrite Descargas/gdb-arm-none-eabi_7.6.50.20131218-0ubuntu1+1_i386.deb

esta linea supone que el archivo se descargó en el directorio "Descargas", de no ser así modificar la ruta

Una vez instalado el paquete, se tendrá todas las herramientas GNU para ARM identificadas con el 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

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