임베디드 용어 사전
디버깅

SWD

ARM이 만든 2선 디버그 인터페이스. 핀 두 개로 JTAG과 거의 같은 일을 한다.

Serial Wire Debug. Cortex-M 개발의 사실상 표준이다.

SWDIO   양방향 데이터
SWCLK   클럭
(+ SWO  선택적 트레이스 출력 — 단방향)

무엇을 할 수 있나

플래시 굽기 · 실행/정지 · 단계 실행
메모리와 레지스터 읽고 쓰기        ← 정지하지 않고도 가능하다
브레이크포인트·워치포인트 설정

멈추지 않고 메모리를 읽을 수 있다는 점이 실무에서 크다. 실시간으로 도는 시스템을 세우지 않고 변수 값을 관찰하는 라이브 워치가 이 성질을 쓴다.

안 붙을 때 보는 순서

1. 전원과 GND — 디버거 기준 전압이 타깃과 맞는가
2. 리셋 핀 연결 — 연결 시퀀스에 필요할 수 있다
3. 펌웨어가 SWD 핀을 GPIO 로 바꿔 버렸는가   ← 흔하다
4. 저전력 모드로 들어가 디버그가 끊겼는가
5. 읽기 보호가 걸렸는가

3·4번이 특히 자주 걸린다. 그래서 부팅 직후 몇 초는 디버그를 방해하지 않는 코드로 두는 것이 관행이다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 디버거 — SWD 로 칩 안을 들여다보기