임베디드 시스템과 펌웨어
OS를 사용하지 않는 마이크로컨트롤러 프로그램에서 흔히 볼 수 있는 '슈퍼 루프' 구성의 설명으로 올바른 것은 무엇입니까?
- Amain 안의 무한 루프에서 각 처리를 차례로 계속 호출하고, 급한 처리는 인터럽트로 한다
- B처리마다 별도의 프로세스를 만들고 OS가 전환한다
- C하나의 처리가 끝날 때마다 마이크로컨트롤러를 재시작한다
정답과 해설 보기
정답: A. main 안의 무한 루프에서 각 처리를 차례로 계속 호출하고, 급한 처리는 인터럽트로 한다
슈퍼 루프에서는 초기화 후 'while (1)' 안에서 센서 읽기, 계산, 표시 등의 처리를 차례로 계속 호출합니다. 시간에 민감한 처리는 인터럽트로 하고 플래그로 루프에 알립니다. OS가 필요 없고 메모리도 적게 들며 동작을 추적하기 쉬운 것이 장점입니다. 다만 하나의 처리가 오래 걸리면 다른 처리가 모두 지연되므로, 처리가 늘어 복잡해지면 RTOS를 검토합니다.