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). 

    外部链接[编辑]