Conversation
|
@esden, could you review this PR? |
dragonmux
left a comment
There was a problem hiding this comment.
So, not Esden, obviously, but rather the lead dev for the Black Magic Debug project. This change looks good to us with some notes (below) for general improvements that could be made that future-proof this a bit and bring the PlatformIO notes on BMD slightly more into line with the upstream project and the direction being taken in the future.
|
|
||
| debug_port = port [monitor_cmd] | ||
|
|
||
| debug_port can be /dev/ttyACM0 (/dev/ttyBmpGdb if you use the udev rules) or a Windows COM port, I use `${this.upload_port}` to use the same. |
There was a problem hiding this comment.
Small nitpick, /dev/ttyACM0 is unreliable in name - the kernel gives us no guarantees that it didn't bring BMP up as some other name instead, hence the project udev rules. Second note, if a user wishes to connect to a specific BMP by serial number, they can update their udev rules and use /dev/ttyBmpGdb<serial>. The udev rules and serial number stuff is stable through releases
| eval "monitor $arg%d enable", $i | ||
| set $i = $i + 1 | ||
| end | ||
| monitor swdp_scan |
There was a problem hiding this comment.
we would suggest using the short name here (mon swd) as this might change through releases. Also, on a new enough BMP (v1.8 firmware or newer), mon auto allows what we've named "auto scan" which tries first JTAG and then SWD which opens this up to more targets.
| @@ -20,12 +20,25 @@ | |||
| class BlackmagicDebugConfig(DebugConfigBase): | |||
Blackmagic Probe improvements
I needed SRST under reset feature, this command has to be issued before scan, but this is currently impossible with current variables.
By changing the gdb init a bit this or even target power is possible
See: "Embedded Debugging with the Black Magic Probe", pp. 28
debug_port = port [monitor_cmd]
debug_port can be /dev/ttyACM0 (/dev/ttyBmpGdb if you use the udev rules) or a Windows COM port, I use
${this.upload_port}to use the same.An optional param can be used to enable eg:
Currently it's not possibe to enable both, but this can easily be changed (iterate over args)