Embedded Recipes 6. RTOS

Sireal·2024년 3월 4일

Embedded Recipes

목록 보기
8/10
post-thumbnail

Embedded Recipes 6. RTOS


거짓말 하나 안보태고 시리즈 | 임베디드 OS 개발 프로젝트 - 후회없이 전진 (velog.io)
를 보는게 더 쉽고 도움된다.

RTOS를 간략히 요약하자면 인터럽트 기반 멀티태스킹 스케줄러 라고 말할 수 있다.
여기서 인터럽트는 NVIC(중첩 인터럽트 컨트롤러)를 말하는 것이며
구현은 개발자 마음이다.

Preemtive Multitasking 이란?


Preemtive Multitasking: 선점형 멀티태스킹

  • 태스크를 선점하는 형태의 멀티태스킹
  • 누가 멀하던 걍 뺏어서하는 거

None-Preemtive Multitasking: 비선점형 멀티태스킹

  • 타 태스크가 끝날때 까지 기다리고 그다음 태스크 동작을 하는 멀티태스킹

IRQ와 Context Switching


__irq 예약어를 통해 IRQ 핸들러 구현을 할 수 있음
IRQ 동작전 컨텍스 스위칭을 해야하는데 컨텍스트 스위칭이란?

현재 TCB(Task Control Block)에 Context를 Stack에 백업 및 Restore 하는 것.

인터럽트와 폴링


인터럽트: HW 적인 변화 감지를 하여 CPU 처리
폴링: 무한 루프로 감지를 계속 읽는 것

DPC, APC, Bottom Half


처리방식 3가지를 알아보자

DPC: Deffered Procedure Call

  • 처리 후 동작

APC: Asynchronous Procedure Call

  • 비동기 처리. 언제든지 동작

Bottom Half = DPC + APC

  • 상황에 맞게 DPC와 APC를 섞어 쓰는 것
profile
달리다 넘어져도 아픔마저 즐기려하는 사람

0개의 댓글