ChibiOS/RT
Aktualna wersja |
18.2.1 |
---|---|
Licencja |
GPL3 |
Strona internetowa |
ChibiOS/RT – szybki, niewielkich rozmiarów system operacyjny czasu rzeczywistego wspierający szereg różnych platform sprzętowych, dostępny na licencji GPL3.
Cechy
[edytuj | edytuj kod]- 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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]- ↑ Supported Architectures [ChibiOS/RT free embedded RTOS]. [dostęp 2013-06-22]. (ang.).
Linki zewnętrzne
[edytuj | edytuj kod]- Strona domowa projektu (ang.)