Skip to content

2.3.2 Derinimas (angl. debugging) su OpenOCD

blahlt edited this page Sep 16, 2018 · 3 revisions

OpenOCD diegimas

  1. http://gnutoolchains.com/arm-eabi/openocd/ parsisiunčiam OpenOCD-0.9.0-Win32.zip (reiktų išbandyti iš https://github.com/gnuarmeclipse/openocd/releases)
  2. Išskleidžiam ir kopijuojam į C:\OpenOCD

Duomenų išvedimas į OpenOCD konsolę

  1. Pasileidžiam cmd.exe ir rašom: cd C:\OpenOCD\bin && C:\OpenOCD\bin\openocd.exe -s ../share/openocd/scripts -f ../share/openocd/scripts/interface/stlink-v2.cfg -f ../scripts/target/stm32f1x.cfg

-s raktas reikalingas, kad žinotų iš kur krauti subskriptus

  1. Einam į projekto Properties, į C/C++ General->Paths and Symbols, tada į Symbols skiltį ir ten pridedam TRACE ir OS_USE_TRACE_SEMIHOSTING_DEBUG raktus
  2. Kode įtraukiam Trace.h failą įrašydami #include "diag/Trace.h" ir kodą papildom pvz.:
uint8_t i = 0;
while (1) { trace_printf("i=%u\n", i++); }
  1. Projektui padarom Build ir sukuriam naują GDB Hardware Debugging tipo konfigūraciją. Hostname: localhost, Port: 3333, o Startup skiltyje prie Initialization Commands įrašom monitor arm semihosting enable)
  2. Spaudžiam Apply ir Debug

Duomenų išvedimas į Eclipse langą

  1. Kode įrašom:
#include "diag/Trace.h"

ir

uint8_t i = 0;
while (1) { trace_printf("i=%u\n", i++); }
  1. Einam į projekto Properties, ten į C/C++ General->Paths and Symbols, tada į Symbols skiltį ir ten pridedam TRACE ir OS_USE_TRACE_SEMIHOSTING_DEBUG raktus
  2. Norint sudiegti naują derinimo (angl. debug) konfigūracijos tipą einam Help->Install New Software...
  3. Work with: įrašom http://gnuarmeclipse.sourceforge.net/updates ir gaunam įrankių sąrašą
  4. Pažymim GNU ARM C/C++ OpenOCD Debugging, spaudžiam Next >, Next >, uždedam varnelę ant I accept the terms of the license agreement, spaudžiam Finish (gali išmesti saugumo pranešimą, kuriame spaudžiame OK) ir restartuojame Eclipse
  5. Padarom projektui Build (kitaip neleis sukurti derinimo (angl. debug) konfigūracijos)
  6. Pažymim projektą ir einam Run->Debug Configurations...
  7. Sukuriam nauja GDB OpenOCD Debugging konfigūraciją
  8. Debugger skiltyje prie Config options: įrašom -s C:\OpenOCD\share\openocd\scripts -f C:\OpenOCD\share\openocd\scripts\interface\stlink-v2.cfg -f C:\OpenOCD\share\openocd\scripts\target\stm32f1x.cfg
  9. Spaudžiam Apply ir Debug

Jei meta klaidą:

Error: init mode failed (unable to connect to the target)
in procedure 'init'
in procedure 'ocd_bouncer'

tai spaudžiant Debug laikom nuspaudė STM32F103 RESET mygtuką ir jau kitą kartą klaidos nebebus.

Nuorodos

Clone this wiki locally