c3d2-wiki/SWD-LINK.mw

18 lines
1.2 KiB
Plaintext

SWD-LINK 1.0
------------
SWD-LINK is an implementation of ARM's "Serial Wire Debugging" (SWD) protocol with an AVR ATMEGA8.
SWD needs only 2 wires (clock and data) and gives you full read/write access to all registers and memories and peripherals of an ARM Cortex M microcontroller.
Low-level bitbanging is performed by an AVR ATMEGA8, which acts as a postman for SWD-packets. The AVR receives the packets (header plus data) from the PC and passes them on via SWD data line to an ARM Cortex M microcontroller. The AVR will then read the response (ACK plus data) from the target and pass it back to the PC.
A sample Java application is provided which will flash the 4 user LED's on an STM32F4-Discovery board in a SWD debugging session. The Cortex M4 is then reset by writing the address of the reset handler into register 15 (which is the program counter).
The source code for SWD adapter and Java application are basically a hands-on introduction into SWD-packet-programming.
The sources are on https://github.com/GerhardPaulus/SWD-LINK
Thanks to Seb and John from Dresden hackerspace C3D2.de for the introduction into STM32F4 development, which made this project possible.
Gerhard