Conversation

I'm upset that there is no good way to multiplex SWD connections across multiple devices. This makes building and testing an assembly of say... 4 to 8 devices needlessly painful. I want JTAG scan chains, damn it, and I have a feeling I'm just going to write a bootloader instead.
3
6
My last solution with anachro was to just have four cheap SWD debuggers attached to a USB hub, which... worked, but did not bring joy. I feel like I'm going to do it again though, sadly.
1
1
Replying to
My solution up to this point has been a collection of gdbstub bootloaders over USB tied into Erlang system for orchestration. Next iteration is modded black magic probe firmware on blue pill boards. That also runs on those STLink clone boards BTW.
1
1
Replying to
Interesting! This project is specifically a bus with a network, so I've been musing on/avoiding building logging and bootloading capabilities into the bus itself. I do have a stock of black-pill (stm32f4) boards, which I could use as debuggers in a pinch.
1
Replying to
I have proof of concept logging working over SWD. Basically BMP firmware is modded so it polls the uC's log buffer while polling for target halt due to breakpoint. At this point I'm not quite sure if the multiplex is a good idea. First iteration is probably simpler to ...
1
Replying to
Nice! Your logging scheme sounds very similar to Segger's RTT protocol, which is also pretty much what probe.rs (and most of the Rust ecosystem) uses (though not specific to Segger's HW). It basically keeps a ring buffer in RAM, the MCU pushes, and dbg pops.
1