임베디드 시스템과 펌웨어

JTAG나 SWD 같은 디버그용 인터페이스로 할 수 있는 것으로 올바른 것은 무엇입니까?

  1. A실제 기판 위에서 프로그램을 멈추거나 한 줄씩 진행하며 레지스터나 변수 값을 보고 플래시를 다시 쓴다
  2. B마이크로컨트롤러의 제조 공정을 변경한다
  3. C프로그램을 다른 언어로 자동 번역한다
정답과 해설 보기

정답: A. 실제 기판 위에서 프로그램을 멈추거나 한 줄씩 진행하며 레지스터나 변수 값을 보고 플래시를 다시 쓴다

JTAG나 Arm의 SWD는 마이크로컨트롤러 내부의 디버그 회로와 PC의 디버거를 잇는 인터페이스입니다. 브레이크포인트에서 멈춰 변수나 레지스터를 조사하거나, 한 명령씩 실행하거나, 플래시에 프로그램을 쓸 수 있습니다. printf를 쓸 수 없는 상황에서도 내부 상태를 알 수 있습니다. 제품으로 출하할 때는 제3자가 읽어내지 못하도록 디버그 기능을 비활성화하기도 합니다.

이 분야 연습하기 분야로 돌아가기

임베디드 시스템과 펌웨어의 다른 문제

  1. 1 ms마다 일정한 제어 계산을 하고 싶습니다. OS를 사용하지 않는 마이크로컨트롤러에서의 구현으로 가장 적절한 것은 무엇입니까?
  2. 마이크로컨트롤러의 브라운아웃 검출(BOD, 브라운아웃 리셋)의 역할로 올바른 것은 무엇입니까?
  3. 인터럽트에 우선순위를 줄 수 있는 마이크로컨트롤러에서, 우선순위가 낮은 인터럽트의 핸들러를 실행 중에 우선순위가 높은 인터럽트가 발생했습니다. 일반적으로 어떻게 됩니까? (인터럽트 중첩을 허용하는 설정으로 가정)
  4. C 언어에서 레지스터 reg의 비트 3만 1로 만들고 나머지 비트는 바꾸지 않는 올바른 표기는 무엇입니까?
  5. C 언어에서 레지스터 reg의 비트 3만 0으로 만들고 나머지 비트는 바꾸지 않는 올바른 표기는 무엇입니까?

이 분야의 비교