임베디드 시스템과 펌웨어

워치독 타이머를 리셋(킥)하는 처리를 1 ms마다의 타이머 인터럽트 핸들러 안에서 무조건 수행하는 것이 좋지 않은 이유로 올바른 것은 무엇입니까?

  1. A워치독은 인터럽트 안에서는 건드릴 수 없는 규칙이기 때문에
  2. B메인 처리가 무한 루프 등으로 멈춰도 인터럽트는 계속 동작하므로, 워치독이 이상을 검출하지 못하게 되기 때문에
  3. C1 ms마다 킥하면 워치독이 고장 나기 때문에
정답과 해설 보기

정답: B. 메인 처리가 무한 루프 등으로 멈춰도 인터럽트는 계속 동작하므로, 워치독이 이상을 검출하지 못하게 되기 때문에

워치독은 정해진 시간 안에 킥되지 않으면 마이크로컨트롤러를 리셋하여 폭주에서 회복시키는 구조입니다. 그런데 타이머 인터럽트는 메인 처리가 멈춰 있어도 계속 동작하므로, 거기에서 무조건 킥하면 멈춰 있다는 것을 알아차리지 못합니다. 메인 루프나 태스크가 각각 정상적으로 한 바퀴 돌았음을 확인하고, 모두 갖춰졌을 때만 킥하는 것이 기본입니다.

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

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

  1. 임베디드 기기의 부트로더의 역할로 올바른 것은 무엇입니까?
  2. 무선으로 펌웨어를 갱신하는(OTA 업데이트) 기기에서 플래시 메모리에 펌웨어를 두는 영역을 2개(A면과 B면) 마련하는 이유로 올바른 것은 무엇입니까?
  3. 배터리로 동작하는 임베디드 기기에서 마이크로컨트롤러의 슬립 모드를 사용하는 주된 목적은 무엇입니까?
  4. 어떤 센서 기기는 전체 시간의 1%만 10 mA로 동작하고, 나머지 99%의 시간은 10 µA로 잠들어 있습니다. 평균 소비 전류에 가장 가까운 것은 무엇입니까?
  5. 작은 마이크로컨트롤러의 펌웨어에서 malloc 등의 동적 메모리 할당을 피하는 경우가 많은 이유로 올바른 것은 무엇입니까?

이 분야의 비교