ChibiOS/RT

維基百科,自由的百科全書
跳至導覽 跳至搜尋
ChibiOS/RT
File:ChibiOS Embeddedware Official Logo.jpg
程式語言C, 匯編語言
作業系統家族實時作業系統
運作狀態穩定
源碼模式開放原始碼
當前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    支援平台Intel 80386, ARM7, ARM9, ARM Cortex-M0, ARM Cortex-M3, 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
    倉庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)

    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設計中不包含諸如錯誤碼或者異常一類的錯誤狀況。

    支持架構[編輯]

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

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

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

    uGFX[編輯]

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

    另請參見[編輯]

    參考資料[編輯]

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

    外部連結[編輯]