Over the past few weeks I've been doing a good bit of hardware debugging on a Nucleo-F103RB and also F103C8 bluepill. I've tried various debug configurations from Eclipse/OpenOCD/ST-Link, Eclipse/BMP and BMP/GDB command line with mixed results. Lately I've been working with Segger J-Link/Ozone/RTT and have been pretty happy with this setup and my productivity.
For Nucleo boards Segger provides a utility to (reversibly) reprogram the on-board ST-Link into a J-Link OB (
https://www.segger.com/products/debu...link-on-board/). It does come with some licensing restrictions but has been working for my hobby dev use, and is free. For the bluepill I also have a J-Link EDU I bought some time ago, it works fine as well. This setup has been working out well for hardware timer debugging work I've been doing with STM Core (
http://www.stm32duino.com/viewtopic.php?f=48&t=4186). I find that single stepping through the startup code and watching the function calls and register status helps me quickly understand what new-to-me code is doing behind the scenes.
The Nucleo J-Link presents a debug hardware serial path that lets you receive debug log info over a hardware serial port in addition to the Ozone debugger info windows. This is very handy but means you give up a hardware serial port. There is an additional (and better) alternative that Segger provides in RTT, or Real Time Transfer (
https://www.segger.com/products/debu...time-transfer/). RTT provides very high transfer
...Continue Reading