ChibiOS/RT

來自維基學院
跳至導覽 跳至搜尋
ChibiOS/RT
編程語言 C, 匯編語言
作業系統家族 實時操作系統
運作狀態 穩定
源碼模式 開放原始碼
最新版本 18.2.1Template:Start date and age
支援平台 Intel 80386, ARM7, ARM9, ARM Cortex-M0, ARM Cortex-M3, ARM Cortex-M4, Power Architecture, e200z, Atmel AVR, TI MSP430, STM8, Freescale Coldfire, Renesas H8S
內核類別 Microkernel
許可證 GPL3 or 私有授權
官方網站 www.chibios.org 官方網站

ChibiOS/RT是一個小且快的實時操作系統。[1] 它支持多種架構,並且以GPLv3釋出。它的開發者是Giovanni Di Sirio。

簡介[編輯 | 編輯原始碼]

ChibiOS/RT是為8,16和32位微控制器設計的;其內存占用和運行效率是項目自始至終着重優化的點。[2] 在STM32(Cortex-M3,72MHz)上,一個典型的ChibiOS/RT實例會占用1.2kB到5.5kB的空間。內核每秒可以創建和終止220000多個線程,而且能在1.2微秒內完成一次線程切換。隨着每一個架構移植的發布,ChibiOS的性能測試數據都會被照例公布。

功能[編輯 | 編輯原始碼]

ChibiOS/RT的小型內核支持:

  • 搶占性多任務[3]
  • 128個優先級
  • 同優先級線程按照時間片輪轉調度
  • 軟件定時器
  • 計數信號量
  • 支持優先級繼承的自旋鎖
  • 同步和異步信息,以及消息隊列
  • 事件標誌和處理函數
  • 支持的同步I/O和帶超時的異步I/O
  • 線程安全的堆或內存池分配器
  • 支持多種底層硬件的硬件抽象層
  • 支持lwIP和uIP協議棧
  • 支持FatFS文件系統

所有的系統對象,比如線程、信號量等都能在運行時創建或者刪除。除了可用內存的限制之外沒有內核對象創建數量上限。為了增強可靠性,整個內核本身是靜態編譯的,並且不需要一個動態內存分配器;內核中也沒有表或者數組的上限。整個系統的API設計中不包含諸如錯誤碼或者異常一類的錯誤狀況。

ChibiOS/RT已經被一直到了Raspberry Pi[4],而且GPIO、串口、定時器、I2C、SPI和PWM的驅動都已經齊備。

ChibiOS/RT也可以作為一個Win32進程運行。此時,它使用軟件模擬I/O模式,方便在沒有硬件的情況下進行軟件開發。官方提供一個基於MinGW編譯器的例子。

uGFX[編輯 | 編輯原始碼]

µGFX完全支持ChibiOS/RT。現已完全商業化的µGFX的前身就是ChibiOS/GFX。

另請參見[編輯 | 編輯原始碼]

參考資料[編輯 | 編輯原始碼]

  1. RTOS performance data. emb4fun.de. (原始內容存檔於2013-01-11) (英語). 
  2. ChibiOS/RT embedded RTOS. Open Hub (英語). 
  3. A detailed explanation of multithreading in ChibiOS/RT. playembedded.org. 2016-10-29 [2018-09-14] (英語). 
  4. ChibiOS/RT on the Raspberry Pi. stevebate.net. [2018-09-14] (英語). 

外部鏈接[編輯 | 編輯原始碼]