ChibiOS/RT는 Giovanni Di Sirio에 의해서 개발하였으며, 임베디드(embedded) 애플리케이션을 위한 무료이자 효율적이고, 컴팩트하며 빠른 RTOS(Real Time Operating System)입니다. Kernel primitive의 이해가 쉬운 세트를 제공하며 다양한 아키텍처(ARM7, Cortex-M0, Cortex-M3, Cortex-M4, PowerPC e200z, STM8, AVR, MSP430, ColdFire, H8S, x86)를 지원합니다. ChibiOS/RT는 RTOS로 GPL3 라이센스 하에서 배포됩니다.


ChibiOS/RT는 8, 16, 32-bit 마이크로컨트롤러의 임베디드 애플리케이션을 위해서 설계되었습니다; 사이즈와 실행 효율이 주요 프로젝트의 목표입니다. 참고로 커널 사이즈는 STM32 Cortex-M3 프로세스에서 활성화된 모든 서브시스템에서 최소 1.2KB에서 최대 5.5KB입니다. 커널은 초당 220,000 이상의 스레딩을 생성시키거나 종료할 수 있고, 72MHz의 STM32에서 1.2ms 내에 컨텍스트 스위칭(context switch)을 실행할 수 있습니다.


특징

  • Tiny memory footprint, 고성능, 쉬운 이식성(portable), 깔끔하고 이해가 쉽습니다.

  • 선점형 마이크로커널이자 멀티스레딩(multithreading), 128 우선 순위 레벨, 신뢰성 있고 정적 아키텍처.

  • Semaphores, Mutexes, CondVars, Messages, Event Flags, Mailboxes, Virtual Timers를 위한 커널 지원.

      • Counting semaphores

      • Mutexes with support for the priority inheritance algorithm

      • Condition variables

      • Synchronous and asynchronous Messages

      • Event flags and handlers

  • IRQ abstraction, non-OS fast IRQ sources(zero latency buzzword) 지원.

  • ARM, ARM-CM0, ARM-CM3, ARM-CM4, PowerPC, STM8, MSP430, AVR, ColdFire, H8S, Linux/Win32/MacOS 시뮬레이터를 지원.

  • HAL(Hardware Abstraction Layer) 컴포넌트는 지원되는 플랫폼 간에 애플리케이션의 이식이 가능.

  • Port(GPIO), Serial, ADC, CAN, DAC, EXT, GPT(general-purpose timer), I2C, I2S, ICU, MAC, MMC/SD, PAL, PWM, RTC, SDC, SPI, UART, USB, WDG 디바이스 드라이버 모델을 위한 HAL 지원.

  • uIP과 lwIP TCP/IP stacks(demo 포함)를 위한 지원.

  • FatFS 파일 시스템 라이브러리(demo 포함)를 지원.

  • 동일한 우선 순위 레벨에서 스레드를 위해서 Round-robin 스케쥴링

  • Software timers

  • Queues

  • Synchronous and asynchronous I/O with timeout capability

  • Thread-safe memory heap and memory pool allocators.


스레드, semaphore, 타이머와 같은 모든 시스템 객체는 실행 중에 생성되고 삭제될 수 있습니다. 가능한 메모리를 제외하고 어떤 상한이 없습니다. 시스템 신뢰성을 개선하기 위해서, 커널 아키텍처는 전체적으로 정적이고, memory allocator가 요구되지 않습니다(그러나 옵션으로 가능합니다). 그리고 테이블 혹은 배열과 같은 상한 사이즈 제한과 함께 어떠한 데이터 구조가 존재하지 않습니다. 시스템 API는 에러 코드나 예외와 같은 에러 조건을 갖지 않도록 설계되었습니다.


RTOS는 임베디드 디바이스 애플리케이션을 위해서 설계되었고 다양한 마이크로컨트롤러를 위한 데모 애플리케이션을 포함합니다:

  • ST STM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx

  • ST STM8S208x, STM8S105x, STM8L152x

  • ST/Freescale SPC56x / MPC56xx

  • NXP LPC11xx, LPC11Uxx, LPC13xx

  • NXP LPC2148

  • Atmel AT91SAM7S, AT91SAM7X

  • Atmel Mega AVR

  • TI MSP430x1611

  • TI TM4C123G and TM4C1294

  • Microchip PIC32MX


소프트웨어 I/O 에뮬레이션(emulation) 모드로 Win32 프로세스에서 커널을 실행시키는 것이 가능합니다. 이는 물리적인 하드웨어의 요구 없이 쉬운 애플리케이션 개발을 허용합니다.




'Embedded Programming > ChibiOS' 카테고리의 다른 글

ChibiOS/RT 설치  (1) 2018.02.25
Cortex-M4 환경에서 ChibiOS 사용한 기초 예제  (0) 2017.12.19
Posted by Nature & Life