임베디드 시스템과 펌웨어
워치독 타이머를 리셋(킥)하는 처리를 1 ms마다의 타이머 인터럽트 핸들러 안에서 무조건 수행하는 것이 좋지 않은 이유로 올바른 것은 무엇입니까?
- A워치독은 인터럽트 안에서는 건드릴 수 없는 규칙이기 때문에
- B메인 처리가 무한 루프 등으로 멈춰도 인터럽트는 계속 동작하므로, 워치독이 이상을 검출하지 못하게 되기 때문에
- C1 ms마다 킥하면 워치독이 고장 나기 때문에
정답과 해설 보기
정답: B. 메인 처리가 무한 루프 등으로 멈춰도 인터럽트는 계속 동작하므로, 워치독이 이상을 검출하지 못하게 되기 때문에
워치독은 정해진 시간 안에 킥되지 않으면 마이크로컨트롤러를 리셋하여 폭주에서 회복시키는 구조입니다. 그런데 타이머 인터럽트는 메인 처리가 멈춰 있어도 계속 동작하므로, 거기에서 무조건 킥하면 멈춰 있다는 것을 알아차리지 못합니다. 메인 루프나 태스크가 각각 정상적으로 한 바퀴 돌았음을 확인하고, 모두 갖춰졌을 때만 킥하는 것이 기본입니다.