Skip to content

2.3.2 Derinimas (angl. debugging) su OpenOCD

blahlt edited this page Mar 23, 2016 · 3 revisions

OpenOCD diegimas

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

Duomenų išvedimas į OpenOCD konsolę

0. 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ų is 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ą

0. Kode įrašom: ``` #include "diag/Trace.h" ``` ir ``` uint8_t i = 0; while (1) { trace_printf("i=%u\n", i++); } ``` 0. Einam į projekto **Properties**, ten į **C/C++ General**->**Paths and Symbols**, tada į **Symbols** skiltį ir ten pridedam **TRACE** ir **OS_USE_TRACE_SEMIHOSTING_DEBUG** raktus 0. Norint sudiegti naują derinimo (angl. debug) konfigūracijos tipą einam **Help**->**Install New Software...** 0. **Work with:** įrašom **http://gnuarmeclipse.sourceforge.net/updates** ir gaunam įrankių sąrašą 0. 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** 0. Padarom projektui **Build** (kitaip neleis sukurti derinimo (angl. debug) konfigūracijos) 0. Pažymim projektą ir einam **Run**->**Debug Configurations...** 0. Sukuriam nauja **GDB OpenOCD Debugging** konfigūraciją 0. **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** 0. 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

* http://erika.tuxfamily.org/wiki/index.php?title=Tutorial:_STM32_-_Integrated_Debugging_in_Eclipse_using_GNU_toolchain * https://community.particle.io/t/tutorial-using-eclipse-st-link-v2-openocd-to-debug/10042

Clone this wiki locally