임베디드 시스템과 펌웨어

OS를 사용하지 않는 마이크로컨트롤러 프로그램에서 흔히 볼 수 있는 '슈퍼 루프' 구성의 설명으로 올바른 것은 무엇입니까?

  1. Amain 안의 무한 루프에서 각 처리를 차례로 계속 호출하고, 급한 처리는 인터럽트로 한다
  2. B처리마다 별도의 프로세스를 만들고 OS가 전환한다
  3. C하나의 처리가 끝날 때마다 마이크로컨트롤러를 재시작한다
정답과 해설 보기

정답: A. main 안의 무한 루프에서 각 처리를 차례로 계속 호출하고, 급한 처리는 인터럽트로 한다

슈퍼 루프에서는 초기화 후 'while (1)' 안에서 센서 읽기, 계산, 표시 등의 처리를 차례로 계속 호출합니다. 시간에 민감한 처리는 인터럽트로 하고 플래그로 루프에 알립니다. OS가 필요 없고 메모리도 적게 들며 동작을 추적하기 쉬운 것이 장점입니다. 다만 하나의 처리가 오래 걸리면 다른 처리가 모두 지연되므로, 처리가 늘어 복잡해지면 RTOS를 검토합니다.

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

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

  1. 임베디드 기기에서 RTOS(실시간 OS)를 사용하는 주된 목적은 무엇입니까?
  2. 선점형 RTOS에서 우선순위가 낮은 태스크가 실행 중일 때, 우선순위가 높은 태스크가 기다리던 데이터를 받아 실행 가능한 상태가 되었습니다. 일반적으로 어떻게 됩니까?
  3. RTOS에서 발생하는 우선순위 역전의 설명으로 올바른 것은 무엇입니까?
  4. 우선순위 역전을 막기 위해 사용되는 '우선순위 상속'의 개념으로 올바른 것은 무엇입니까?
  5. RTOS에서 센서를 읽는 태스크에서 표시하는 태스크로 데이터를 전달할 때 큐(메시지 큐)를 사용하는 이점으로 올바른 것은 무엇입니까?

이 분야의 비교