跳至內容

ChibiOS/RT

維基百科,自由的百科全書
ChibiOS/RT
編程語言C, 匯編語言
作業系統家族實時操作系統
運作狀態穩定
源碼模式開放原始碼
當前版本
  • 18.2.1(2018年5月1日)[1]
編輯維基數據鏈接
支援平台Intel 80386, ARM7, ARM9, ARM Cortex-M0, ARM Cortex-M3, ARM Cortex-M4英語ARM Cortex-M4, PPC, e200z英語PowerPC e200, Atmel AVR, TI MSP430, STM8英語STM8, Freescale Coldfire英語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設計中不包含諸如錯誤碼或者異常一類的錯誤狀況。

支持架構

Coldfire英語Coldfire和H8S也有貢獻者提交的移植可用。[2]

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

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

uGFX

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

另請參見

參考資料

  1. ^ http://www.chibios.com/forum/viewtopic.php?f=7&t=4487&p=32724#p32724.
  2. ^ 2.0 2.1 RTOS performance data. emb4fun.de. [2018-09-14]. (原始內容存檔於2013-01-11) (英語). 
  3. ^ ChibiOS/RT embedded RTOS. Open Hub. [2018-09-14]. (原始內容存檔於2014-04-14) (英語). 
  4. ^ A detailed explanation of multithreading in ChibiOS/RT. playembedded.org. 2016-10-29 [2018-09-14]. (原始內容存檔於2018-04-23) (英語). 
  5. ^ ChibiOS/RT on the Raspberry Pi. stevebate.net. [2018-09-14]. (原始內容存檔於2018-09-18) (英語). 

外部連結