Serial Wire Debug. Cortex-M 개발의 사실상 표준이다.
SWDIO 양방향 데이터
SWCLK 클럭
(+ SWO 선택적 트레이스 출력 — 단방향)
무엇을 할 수 있나
플래시 굽기 · 실행/정지 · 단계 실행
메모리와 레지스터 읽고 쓰기 ← 정지하지 않고도 가능하다
브레이크포인트·워치포인트 설정
멈추지 않고 메모리를 읽을 수 있다는 점이 실무에서 크다. 실시간으로 도는 시스템을 세우지 않고 변수 값을 관찰하는 라이브 워치가 이 성질을 쓴다.
안 붙을 때 보는 순서
1. 전원과 GND — 디버거 기준 전압이 타깃과 맞는가
2. 리셋 핀 연결 — 연결 시퀀스에 필요할 수 있다
3. 펌웨어가 SWD 핀을 GPIO 로 바꿔 버렸는가 ← 흔하다
4. 저전력 모드로 들어가 디버그가 끊겼는가
5. 읽기 보호가 걸렸는가
3·4번이 특히 자주 걸린다. 그래서 부팅 직후 몇 초는 디버그를 방해하지 않는 코드로 두는 것이 관행이다.