I love the ARM Cortex-M series of microcontrollers. The sheer computational power they pack into a teensy, low-power package is almost embarrassing.
But, many Cortex-M parts are small — 4x4 millimeters small — and don’t have the pins left over for JTAG. For these parts, ARM introduced a new debug interface, called SWD.
Unfortunately, SWD isn’t well-supported by open-source tools. Support is in progress in most of them — including my personal favorite, OpenOCD — but I’ve had bad luck so far.
Anton Staaf was having the same issue, and decided to do something about it. He tricked the cheap, commonly-available FTDI FT232H chip into speaking the line-level SWD protocol. We’ve teamed up and, a week or so later, have something to show for it.
swddude, the dead-simple programmer for SWD microcontrollers. (By
“dead-simple” I mean “rather braindead” but it works!) Currently it can flash
code onto the LPC111x, LPC11Cxx, and LPC13xx series. Support for more chips is
I’ve posted a mirror of the code on GitHub for your cloning pleasure. Happy hacking!