STM32 OpenOCD

From ElectroDragon Wiki

STM32 Linux

Debugger OpenOCD

  • Help page.
  • Use either ST-LINK or OpenOCD, can work with ST-LINK2
  • For example OpenOCD, run command as follow to install
  1. install openocs: sudo apt-get install openocd
  2. setup up for usbdevice: sudo vi /etc/udev/rules.d/99-stlink.rules
  3. add conent: ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="0666"
  4. reload setup: sudo udevadm control --reload-rules
  5. open board: openocd -f /usr/share/openocd/scripts/board/stm32f3discovery.cfg
  6. or use: /usr/share/openocd/scripts# openocd -f interface/stlink-v2.cfg -f target/stm32f1x_stlink.cfg
  • If well connected, result will show:

Open On-Chip Debugger 0.7.0 (2013-05-15-17:44) Licensed under GNU GPL v2 For bug reports, read

http://openocd.sourceforge.net/doc/doxygen/bugs.html
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : This adapter doesn't support configurable speed
Info : STLINK v2 JTAG v16 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : Target voltage: 2.915198
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoint
  • Run another terminal and telnet to the board: telnet localhost 4444
  • halt it into debug mode: reset halt or: reset init
  • Reflash bin into board:
flash write_image erase maple_mini_boot.bin 0x08000000
flash write_image erase /media/sf_VM_XP_share/LED.hex
  • Finall reset it to start up again: reset run

Toolchain

  • Install: sudo apt-get install gcc-arm-none-eabi

Firmware libopencm3 and test code

  • git clone the firmware and try stm32f103 demo blink code, the firmware works like arduino
git clone https://github.com/libopencm3/libopencm3-examples.git
cd libopencm3-examples
git submodule init // 
git submodule update
make
  • enter into board folder like: cd libopencm3-examples/examples/stm32/f3/stm32f3-discovery/miniblink
  • for STM32F1x board, enter into /libopencm3-examples/examples/stm32/f1/stm32-h103//miniblink/
  • firmware support openocd, can run make flash directory
  • Or manually telnet to openocd: telnet localhost 4444
reset halt
flash write_image erase miniblink.elf
reset