Depuración con OpenOCD y gdb
Por favor usa openocd 4.0 o más reciente.
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. Es posible usar un adaptador SWD (ST-Link) en su lugar, para esto usa openocd 0.7 o más reciente.
Inicia el servidor openocd con archivos de configuración que coincidan con tu hardware:
openocd -f interface/jlink.cfg -f target/stm32.cfg
O, si estás usando 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 ser necesario para evitar errores de "target is not halted" y otros problemas más tarde:
reset_config trst_and_srst
Detén el objetivo (el procesador arm):
reset halt
Si aún no has grabado el binario, usando por ejemplo dfu-util, puedes hacerlo sobre 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 del Producto
si tienes algún problema técnico. envía el problema a nuestro foro. ¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.