Real Time Transfer. SWD 만 연결돼 있으면 로그가 된다는 것이 강점이다.
펌웨어 RAM 의 링 버퍼에 문자열을 쓴다 (수 µs)
디버거 실행을 멈추지 않고 그 버퍼를 주기적으로 읽어 간다
왜 빠른가
펌웨어 쪽은 메모리 복사만 한다. 전송은 디버거가 알아서 가져간다. UART 처럼 비트 시간을 기다리지 않으므로 타이밍 영향이 아주 작다.
비교
UART 추가 핀 필요 · 느림 · 양산 기판에서도 쓸 수 있다
ITM/SWO SWO 핀 필요 · 빠름 · M0 계열 불가
RTT 추가 핀 불필요 · 빠름 · 디버거가 붙어 있어야 한다
실무 팁
- 버퍼가 차면 덮어쓸지 기다릴지 정책을 고를 수 있다. 타이밍이 중요하면 덮어쓰기로 둔다
- 입력 채널도 있어 간단한 명령 입력을 받을 수 있다 — 현장 진단용 셸을 만들 수 있다
- 로그 문자열이 플래시를 먹으므로, 릴리스 빌드에서는 매크로로 걷어내는 구성이 흔하다