Hacker News new | ask | show | jobs
by zoobab 9 days ago
Jlink is closed source.

Better use dirtyJTAG on an rp2040.

4 comments

Agree RP2040 / RP2350 is great for debug and UART access! I wrote[0] about using picoprobe with this device as well.

[0] https://danielmangum.com/posts/risc-v-bytes-accessing-pineci...

I tried to use picoprobe to debug an nrf52 chip, it failed to even detect it.. All that’s officially supported is using it to debug a raspberry pi, and maybe if I added 100Ohm resistors to the lines I would have had better luck, but.. alas
> I tried to use picoprobe to debug an nrf52 chip, it failed to even detect it

I've literally got a Pi Debug Probe and a nRF52840 dev board on my desk, so I gave it a shot - and it works just fine. Make sure the core is awake when you try to connect for debug, or connect under reset; SWD goes to sleep with the rest of the chip.

> All that’s officially supported is using it to debug a raspberry pi

The Pi Debug Probe is a generic DAPlink probe, and will work for pretty much any Cortex-M part. I routinely use mine for debugging STM32 parts.

'Connect under reset' is an STM32 thing, nrf52840 can't really do that and the probe doesn't use hardware reset pin. Once the MCU is out of pin reset, Ctrl-AP can hold the mcu in soft reset, but that's the standard behavior.

The difference between Pico and Pi Debug Probe are those 100Ω resistors on CLK/DIO lines, so I guess it working for you means I need to try again with resistors soldered.

Thanks for verifying it works!

There's basically zero chance 100Ω resistors are contributing to your issues on a protocol that is host-clocked and can operate in the single kilobaud range.

Lower speed or try one of the other fifty debug firmware projects.

https://github.com/raspberrypi/debugprobe

https://github.com/bugadani/rusty-probe-embassy

https://github.com/probe-rs/rusty-probe

https://github.com/ciniml/rust-dap

https://github.com/ccattuto/rp2040-dap-probe

Not all firmware implements all modes or the CMSIS-DAP spec correctly (most don't implement JTAG, either.)

Okay i'm officially a dumbass - looking at the pinout i can clearly see Arduino pins and normal GPIO pins are mixed up on the board I used (seeed xiao rp2040). Arduino strikes again!

Just checked - of course if works fine on proper pins

Doesn’t look like openocd is getting dirtyjtag support any time soon, the PR has stalled since 2003 it seems https://review.openocd.org/c/openocd/+/7344
JLink + Segger Ozone is so, so good though. Supper fast to flash and really nice debugger.
Why that over the debug probe firmware?