даташит на SWD протокол есть на сайте ARM.
Реализовать его просто!
Относительно недавно появился CMSIS-DAP, я про него писал!
http://electronix.ru/forum/index.php?showtopic=106268там фактически есть реализация SWD для Cortex-M3
Писать, читать память у Cortex-M3 ( ЕМНИП у M0 также) довольно просто. Если шить флешь можно обращаясь к регистрам, не как у LPC вызывая функции, а например как у атмела - то можно прошить флешь просто подцепившись к контроллеру. Я так реализовал недавно прошивку SAM3S (питон + FTDI syncro bitbang)
Если по SWD вопросы - спрашивайте, я просто давно реализовывал, когда еще клонов Jlinka не было умеющих по SWD работать, как первые STM Cortex-M3 появились и их надо было шить по SWD.
Еще стоит обратить внимание на исходники OpenOCD - там есть все необходимые функции для работы с DEBUG PORT и т.д.