ChibiOS/RT
此條目需要補充更多來源。 (2017年5月8日) |
程式語言 | C, 匯編語言 |
---|---|
作業系統家族 | 實時作業系統 |
運作狀態 | 穩定 |
源碼模式 | 開放原始碼 |
當前版本 |
|
支援平台 | Intel 80386, ARM7, ARM9, ARM Cortex-M0, ARM Cortex-M3, ARM Cortex-M4, PPC, e200z, Atmel AVR, TI MSP430, STM8, Freescale Coldfire, Renesas H8S |
內核類別 | Microkernel |
許可證 | GPL3 or 私有授權 |
官方網站 | www.chibios.org |
倉庫 |
ChibiOS/RT是一個小且快的實時作業系統。[2] 它支持多種架構,並且以GPLv3釋出。它的開發者是Giovanni Di Sirio。
簡介
ChibiOS/RT是為8,16和32位微控制器設計的;其內存佔用和運行效率是項目自始至終着重優化的點。[3] 在STM32(Cortex-M3,72MHz)上,一個典型的ChibiOS/RT實例會佔用1.2kB到5.5kB的空間。內核每秒可以創建和終止220000多個線程,而且能在1.2微秒內完成一次線程切換。隨着每一個架構移植的發佈,ChibiOS的性能測試數據都會被照例公佈。
功能
ChibiOS/RT的小型內核支持:
- 搶佔性多任務[4]
- 128個優先級
- 同優先級線程按照時間片輪轉調度
- 軟件定時器
- 計數信號量
- 支持優先級繼承的自旋鎖
- 同步和異步信息,以及消息隊列
- 事件標誌和處理函數
- 支持的同步I/O和帶超時的異步I/O
- 線程安全的堆或內存池分配器
- 支持多種底層硬件的硬件抽象層
- 支持lwIP和uIP協議棧
- 支持FatFS文件系統
所有的系統對象,比如線程、信號量等都能在運行時創建或者刪除。除了可用內存的限制之外沒有內核對象創建數量上限。為了增強可靠性,整個內核本身是靜態編譯的,並且不需要一個動態內存分配器;內核中也沒有表或者數組的上限。整個系統的API設計中不包含諸如錯誤碼或者異常一類的錯誤狀況。
支持架構
- 意法半導體 STM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx
- 意法半導體 STM8S208x, STM8S105x, STM8L152x
- 意法半導體/飛思卡爾SPC56x / MPC56xx
- 恩智浦 LPC11xx, LPC11Uxx, LPC13xx
- 恩智浦 LPC2148
- 愛特梅爾 AT91SAM7S, AT91SAM7X
- 愛特梅爾 Mega AVR
- 德州儀器 MSP430x1611
- 德州儀器 TM4C123G and TM4C1294
- 微芯 PIC32MX
ChibiOS/RT已經被移植到了Raspberry Pi[5],而且GPIO、串口、定時器、I2C、SPI和PWM的驅動都已經齊備。
ChibiOS/RT也可以作為一個Win32進程運行。此時,它使用軟件模擬I/O模式,方便在沒有硬件的情況下進行軟件開發。官方提供一個基於MinGW編譯器的例子。
uGFX
µGFX完全支持ChibiOS/RT。現已完全商業化的µGFX的前身就是ChibiOS/GFX。
另請參見
參考資料
- ^ http://www.chibios.com/forum/viewtopic.php?f=7&t=4487&p=32724#p32724.
- ^ 2.0 2.1 RTOS performance data. emb4fun.de. [2018-09-14]. (原始內容存檔於2013-01-11) (英語).
- ^ ChibiOS/RT embedded RTOS. Open Hub. [2018-09-14]. (原始內容存檔於2014-04-14) (英語).
- ^ A detailed explanation of multithreading in ChibiOS/RT. playembedded.org. 2016-10-29 [2018-09-14]. (原始內容存檔於2018-04-23) (英語).
- ^ ChibiOS/RT on the Raspberry Pi. stevebate.net. [2018-09-14]. (原始內容存檔於2018-09-18) (英語).