ChibiOS/RT

ChibiOS/RT – szybki, niewielkich rozmiarów system operacyjny czasu rzeczywistego wspierający szereg różnych platform sprzętowych, dostępny na licencji GPL3.

Cechy

  • wielowątkowość z wywłaszczaniem
  • 128 poziomów priorytetów
  • planowanie rotacyjne dla zadań o tym samym priorytecie
  • programowe liczniki (ang. timers)
  • semafory zliczające
  • muteksy z dziedziczeniem priorytetów
  • zmienne warunkowe (ang. condition variables)
  • kolejki komunikatów synchroniczne i asynchroniczne (ang. messages)
  • obsługa zdarzeń (ang. events)
  • kolejki (ang. queues)
  • synchroniczne i asynchroniczne operacje wejścia/wyjścia z obsługą przekroczenia czasu
  • obsługa dynamicznej alokacji pamięci o strukturze sterty oraz puli (ang. heap oraz ang. pool)
  • warstwa abstrakcji sprzętu z obsługą ADC, CAN, EXT, GPT, I2C, ICU, MAC, MMC, PWM, RTC, SDC, SPI, UART, USB, USB-CDC
  • wsparcie obsługi systemu plików dla biblioteki FatFS
  • wsparcie obsługi TCP/IP dla stosów LwIP oraz uIP

Architektura

System (mikrojądro) posiada statyczną architekturę wewnętrzną. Do poprawnego działania nie jest wymagana obsługa dynamiczniej alokacji pamięci, a API systemu jest tak zaprojektowane, że nie zwraca kodów błędów (pomijając błąd braku wolnej pamięci w przypadku użycia alokatora). Jest to podyktowane naciskiem na niezawodność. Pomimo statycznej konstrukcji wszystkie obiekty (wątki, semafory, timery, ...) mogą być również tworzone i usuwane dynamicznie, a ich liczba ograniczona jest jedynie dostępną pamięcią.

System posiada porty na następujące platformy sprzętowe[1]:

  • LPC11xx
  • LPC11Uxx
  • STM32F0xx
  • LPC13xx
  • STM32F1xx
  • STM32F2xx
  • STM32L1xx
  • STM32F4xx
  • LPC214x
  • ATmega128
  • AT90CAN128
  • MSP430F1611
  • SPC563Mx
  • MPC563x
  • STM8L
  • STM8S

Dla każdej platformy dostępna jest przykładowa aplikacja demonstracyjna prezentująca działanie systemu.

Przypisy

Linki zewnętrzne