ChibiOS/RT - ChibiOS/RT
| Entwickler | Giovanni Di Sirio |
|---|---|
| Geschrieben in | C , Assemblersprache |
| Betriebssystemfamilie | Echtzeit-Betriebssysteme |
| Arbeitszustand | Strom |
| Quellmodell | Open Source |
| Erstveröffentlichung | 2007 |
| Neueste Erscheinung | 20.3.2 / 1. August 2020 |
| Repository |
|
| Marketingziel | Eingebettete Systeme |
| Verfügbar in | Englisch |
| Plattformen | Intel 80386 ; ARM 7, 9 , Kortex: M0 , M3 , M4 , M7 ; PowerPC , e200z ; Atmel AVR ; TI-MSP430 ; STM8 ; Freescale Coldfire ; Renesas H8 S |
| Kernel- Typ | Mikrokernel |
| Lizenz | GPL 3 oder proprietär |
| Offizielle Website | www |
ChibiOS/RT ist ein kompaktes und schnelles Echtzeit-Betriebssystem, das mehrere Architekturen unterstützt und unter einer Mischung aus der GNU General Public License Version 3 (GPL3) und der Apache License 2.0 (je nach Modul) veröffentlicht wird. Es wurde von Giovanni Di Sirio entwickelt.
Kommerzielle Lizenzen sind von ChibiOS erhältlich . Weitere Produkte sind ChibiOS/HAL, eine mit ChibiOS/RT kompatible Hardware-Abstraktionsschicht , und ChibiStudio, eine kostenlose integrierte Entwicklungsumgebung auf Basis von Eclipse , der GNU Compiler Collection und dem Debugging-Pod der OpenOCD Joint Test Action Group ( JTAG ).
Messwerte
ChibiOS/RT wurde für eingebettete Anwendungen auf Mikrocontrollern mit 8- , 16- und 32-Bit entwickelt . Größe und Ausführungseffizienz sind die wichtigsten Projektziele. Als Referenz kann die Kernelgröße von mindestens 1,2 KiB bis maximal 5,5 KiB reichen, wenn alle Subsysteme auf einem STM32 Cortex-M3- Prozessor aktiviert sind . Der Kernel kann über 220.000 erstellte/beendete Threads pro Sekunde erreichen und kann einen Kontextwechsel in 1,2 Mikrosekunden auf einem STM32 @ 72 MHz durchführen. Ähnliche Metriken für alle unterstützten Plattformen sind als Testberichte in der Quellcodeverteilung enthalten .
Eigenschaften
Der ChibiOS/RT- Mikrokernel unterstützt:
- Präventives Multithreading
- 128 priority queue Ebene
- Round-Robin-Planung für Threads mit derselben Prioritätsstufe
- Software- Timer
- Counting Semaphore
- Mutexes mit Unterstützung für die Prioritätsvererbung Algorithmus
- Bedingungsvariablen
- Synchrone und asynchrone Nachrichten
- Ereignisflags und Handler
- Warteschlangen
- Synchrone und asynchrone E/A mit Timeout- Fähigkeit
- Thread-sichere Speicherheap- und Speicherpoolzuordnungen .
- Hardware Abstraction Layer mit Unterstützung für ADC , CAN , GPT (Allzweck-Timer), EXT , I²C , ICU , MAC , MMC/SD , PAL , PWM , RTC , SDC , Serial , SPI und USB- Treiber.
- Unterstützung für die LwIP- und uIP- TCP/IP-Stacks.
- Unterstützung für die FatFs-Dateisystembibliothek.
Alle Systemobjekte wie Threads , Semaphoren , Timer usw. können zur Laufzeit erstellt und gelöscht werden. Außer dem verfügbaren Speicher gibt es keine Obergrenze. Um die Systemzuverlässigkeit zu erhöhen, ist die Kernel- Architektur vollständig statisch, ein Speicherzuordner wird nicht benötigt (ist aber optional erhältlich) und es gibt keine Datenstrukturen mit oberen Größenbeschränkungen wie Tabellen oder Arrays . Die Systemanwendungsprogrammierschnittstellen ( APIs ) sind so ausgelegt, dass sie keine Fehlerbedingungen wie Fehlercodes oder Ausnahmen aufweisen.
Das RTOS ist für Anwendungen auf eingebetteten Systemen (Geräten) konzipiert und beinhaltet Demoanwendungen für verschiedene Mikrocontroller :
- STMicroelectronics – STM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx ; STM8S208x, STM8S105x, STM8L152x ; ST/Freescale SPC56x, MPC56xx
- NXP Semiconductors – LPC11xx, LPC11Uxx, LPC13xx , LPC2148
- Atmel – AT91SAM7S, AT91SAM7X , megaAVR
- Texas Instruments (TI) – MSP430x1611 ; TM4C123G, TM4C1294
- Mikrochip-Technologie – PIC32MX
Contributed Ports sind auch für die Coldfire- und H8S- Familien verfügbar .
Auch ChibiOS/RT wurde auf den Raspberry Pi portiert und folgende Gerätetreiber implementiert: Port (GPIO), Serial, GPT (General-Purpose Timer), I2C, SPI und PWM.
Es ist auch möglich, den Kernel in einem Win32- Prozess in einem Software-E/A-Emulationsmodus auszuführen , was eine einfache Anwendungsentwicklung ohne physische Hardware ermöglicht. Ein Beispiel für den MinGW- Compiler ist enthalten .
uGFX
ChibiOS/RT wird vollständig vom grafischen Benutzeroberflächen- Toolkit (GUI) µGFX, früher ChibiOS/GFX, unterstützt.
Siehe auch
- Vergleich von Open-Source-Betriebssystemen
- Eine ausführliche Erklärung zum Multithreading in ChibiOS/RT