임베디드 시스템과 펌웨어
JTAG나 SWD 같은 디버그용 인터페이스로 할 수 있는 것으로 올바른 것은 무엇입니까?
- A실제 기판 위에서 프로그램을 멈추거나 한 줄씩 진행하며 레지스터나 변수 값을 보고 플래시를 다시 쓴다
- B마이크로컨트롤러의 제조 공정을 변경한다
- C프로그램을 다른 언어로 자동 번역한다
정답과 해설 보기
정답: A. 실제 기판 위에서 프로그램을 멈추거나 한 줄씩 진행하며 레지스터나 변수 값을 보고 플래시를 다시 쓴다
JTAG나 Arm의 SWD는 마이크로컨트롤러 내부의 디버그 회로와 PC의 디버거를 잇는 인터페이스입니다. 브레이크포인트에서 멈춰 변수나 레지스터를 조사하거나, 한 명령씩 실행하거나, 플래시에 프로그램을 쓸 수 있습니다. printf를 쓸 수 없는 상황에서도 내부 상태를 알 수 있습니다. 제품으로 출하할 때는 제3자가 읽어내지 못하도록 디버그 기능을 비활성화하기도 합니다.