Skip to main content

Depuración con OpenOCD y gdb

Por favor, utiliza OpenOCD versión 4.0 o superior.

Este ejemplo asume que tienes un adaptador JTAG compatible con Segger J-Link entre tu computadora y el dispositivo (o placa de desarrollo) que estás depurando. También es posible usar un adaptador SWD (ST-Link); para esto usa OpenOCD versión 0.7 o superior.

Inicia el servidor OpenOCD con los archivos de configuración que correspondan a tu hardware:

openocd -f interface/jlink.cfg -f target/stm32.cfg

O, si usas SWD:

openocd -f interface/stlink-v2.cfg -f target/stm32f1x_stlink.cfg

En una segunda ventana, inicia una sesión interactiva con OpenOCD:

telnet localhost 4444

Esto parece necesario para evitar errores como "target is not halted" y otros problemas posteriores:

reset_config trst_and_srst

Detén el target (el procesador ARM):

reset halt

Si aún no has cargado el binario, por ejemplo con dfu-util, puedes hacerlo vía JTAG así:

reset init
flash write_image erase dso-lib.hex 0 ihex
reset halt

En una tercera ventana, inicia gdb o gdbtui:

arm-none-eabi-gdb
(gdb) file dso-lib.elf
(gdb) target remote localhost:3333"
(gdb) load dso-lib.elf

Ahora deberías poder ejecutar y depurar:

(gdb) set $pc = Reset_Handler
(gdb) display/i $pc
(gdb) stepi

Soporte técnico y discusión de productos

Si tienes algún problema técnico, por favor envía tu consulta a nuestro foro.
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes opciones de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender distintas preferencias y necesidades.

Loading Comments...