Bienvenido: Ingresar
location: Diferencias para "LabElectronica/Jtag"
Diferencias entre las revisiones 3 y 4
Versión 3 con fecha 2010-07-22 21:05:25
Tamaño: 3264
Editor: localhost
Comentario:
Versión 4 con fecha 2010-07-22 21:47:15
Tamaño: 3654
Editor: localhost
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 52: Línea 52:
 4.  4. source bpoint ===> Script que crea dos comandos para los breakpoint, bp1 y bp2.
 5. bp1 0x80FD ===> Breakpoint 1 en la dirección 0x80FD.
 6. bp2 0x70FD ===> Breakpoint 2 en la dirección 0x70FD.
A continuación se puede continuar el debugging de manera gráfica colocando todos los breakpoint necesarios sin mayores inconvenientes.

Uso básico del JTag con insigth

Introducción

La programación del micro ARM se la puede hacer sobre la RAM o la FLASH. Si se decide programar sobre la RAM no se presentan mayores inconvenientes a la hora del debugging con el Jtag. No obstante para la programación sobre la FLASH se deben tener en cuenta ciertos puntos.

Servidor del Jtag

El Open On-Chip Debugger (OpenOCD) permite la interacción con el usuario a travéz de una interface telnet (por defecto: port 4444) y con un GDB server (por defecto: port 3333). Previamente lo instalamos desde un terminal:

  • aptitude install openocd

Para correrlo se lo hace desde un terminal como superusuario y con el archivo de configuración correspondiente:

  • openocd -f target/lpc2114_david.cfg -f interface/arm-usb-ocd.cfg

En esta instancia aparecerá, en el terminal, algo como sigue:

Open On-Chip Debugger 0.4.0 (2010-02-23-17:04)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.berlios.de/doc/doxygen/bugs.html
trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
1000 kHz
Info : clock speed 1000 kHz
Info : JTAG tap: lpc2114.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
Info : Embedded ICE version 4
Info : lpc2114.cpu: hardware has 2 breakpoint/watchpoint units

Una vez conectado con el servidor se puede usar como conversor USB/RS232 y grabar el micro con el cable serial.

== Debugging sobre RAM== Para el debugging sobre la RAM se debe correr el servidor explicado en el punto anterior y luego correr el insight de la siguiente manera:

  • arm-elf-insight NAME.elf

Donde NAME es el nombre del archivo correspondiente. Se enumeran los pasos que se deben realizar sobre la consola gdb del insight, pudiendo hacerse algunos desde los menús del insight:

  1. target remote localhost:3333 ===> Conecta con el gdb a través del puerto 3333.

  2. monitor soft_reset_halt ===> Detiene la placa del ARM y genera un reset por soft.

  3. load ===> Carga el programa desde el insight al micro a través del Jtag.

A continuación se puede continuar el debugging de manera gráfica colocando todos los breakpoint necesarios sin mayores inconvenientes.

== Debugging sobre FLASH== Se aclara que el insight tiene la problemática de no poder grabar la flash desde su entorno, por lo que se debe utilizar un cable serial para tal fin, pudiendo usar el puerto RS232 disponible del Jtag. Otra cuestión poco estudiada es que tampoco se puede colocar breakpoints por software, pero se hace uso de los dos breakpoints por hardware que dispone el micro mediante dos script. Se enumeran los pasos que se deben realizar sobre la consola gdb del insight, pudiendo hacerse algunos desde los menús del insight:

  1. target remote localhost:3333 ===> Conecta con el gdb a través del puerto 3333.

  2. monitor soft_reset_halt ===> Detiene la placa del ARM y genera un reset por soft.

  3. step ===> Se realiza un paso de debugging.

  4. source bpoint ===> Script que crea dos comandos para los breakpoint, bp1 y bp2.

  5. bp1 0x80FD ===> Breakpoint 1 en la dirección 0x80FD.

  6. bp2 0x70FD ===> Breakpoint 2 en la dirección 0x70FD.

A continuación se puede continuar el debugging de manera gráfica colocando todos los breakpoint necesarios sin mayores inconvenientes.

None: LabElectronica/Jtag (última edición 2011-12-02 23:14:32 efectuada por localhost)