
ST 사에서 제작한 MCU 디버깅/프로그래밍 장치이다
- MCU에 프로그램 업로드 기능
- MCU 디버깅 (Break, Step, 변수 관찰 등) 기능
JTAG과 SWD 은 ST-LINK와 같은 디버거와 MCU를 이어주는 인터페이스 이다.
[디버거]-[JTAG/SWD]-[MCU]
대략 위와같은 구조이다.
참고로, ST-LINK 뿐만 아니라 다른 디버거도 JTAG같은 프로토콜을 사용할 수 있다.

- 병렬로 데이터를 전송한다 -> SWD보다 빠르다
- 통신에 4~5개의 핀이 필요하다.
- 대부분의 MCU 디버깅을 지원한다.
- 핀 수를 많이 써야하고 비싸다
- 펌웨어 업로드
- 디버깅
TDI(Test Data In): JTAG 체인으로 데이터(명령어, 테스트 데이터)를 입력하는 직렬 입력 핀TDO(Test Data Out): JTAG 체인으로 데이터가 출력되는 직렬 출력 핀TCK(Test Clock): JTAG 동작을 위한 클럭 신호 입력 핀TMS(Test Mode Select): JTAG TAP 컨트롤러 상태 전이를 제어하는 입력 핀TRST(Test Reset, 선택적): 테스트 로직의 리셋 신호 입력 (비동기/동기 리셋)

SWDIO (Serial Wire Debug I/O): 양방향 데이터 통신을 담당하는 데이터 입출력 핀SWCLK (Serial Wire Clock): 데이터 동기화를 위한 클럭 출력 핀
- 직렬로 데이터를 전송한다 -> JTAG보다 느리다.
- 통신에 최소 2개의 핀만 있으면된다.
- ARM 디바이스의 디버깅을 지원한다.
- 핀 수를 적게 쓰고, 싸다
아직 잘 느껴지지 않는다,,,시간날때 다시 공부해봐야겠다.