有许多不同的 RTOS 可用于微控制器。我专门寻找支持 ARM Cortex M 处理器的 RTOS。另外,我对闭源解决方案不感兴趣。
尝试从网站和邮件列表中比较每个 RTOS 的相对优点似乎非常困难,因为它们大多似乎具有相同的功能并且做同样的事情。只有在尝试将每个 RTOS 用于某些任务之后,真正的差异才会变得明显。
我知道这是一个有点主观的问题,可能很难回答——但肯定有很多人实际上尝试了几种不同的 RTOS,并对每种 RTOS 的相对优点形成了意见。
我对 FreeRTOS、ChibiOS 和 Coocox CoOS 特别感兴趣,但也非常欢迎其他选择。
例如:在 ChibiOS 中,ISR 似乎可以调用任何系统函数,但这些调用必须包装在chSysLockFromIsr()
/中chSysUnlockFromIsr()
,并且在这些部分中代码不可抢占。isr_
在 CoOS 中,唯一可调用的函数是以isr_PostSem()
、和
开头的函数isr_PostMail()
,但这些函数内部使用服务请求队列,这意味着大部分请求是可抢占的。isr_PostQueueMail()
isr_SetFlag()