用于小型ARM微控制器的RTOS内核之间的量化差异

时间:2014-02-11 06:29:24

标签: arm microcontroller rtos freertos

微控制器有许多不同的RTOS可用。我特意寻找支持ARM Cortex M处理器的RTOS。另外,我对闭源解决方案不感兴趣。

尝试比较网站和邮件列表中每个RTOS的相对优点似乎非常困难,因为它们似乎具有相同的功能并且做同样的事情。真正的差异显然只是在尝试将每个RTOS用于某些任务之后。

我知道这是一个有点主观的问题,可能很难回答 - 但是必须有很多人实际尝试了几种不同的实时操作系统并形成了对每种实际操作的相对优点的看法。

我对FreeRTOS,ChibiOS和Coocox CoOS特别感兴趣,但其他选择也非常受欢迎。


例如:似乎在ChibiOS中,ISR可以调用任何系统函数,但这些调用必须包含在chSysLockFromIsr() / chSysUnlockFromIsr()中,并且代码在这些部分中不可抢占。在CoOS中,唯一可调用的函数是以isr_开头的函数,例如isr_PostSem()isr_PostMail()isr_PostQueueMail()isr_SetFlag(),但这些函数在内部使用服务请求队列,这意味着大部分请求都是可抢占的。

1 个答案:

答案 0 :(得分:3)

在选择RTOS时可以考虑的一些功能:

  • 上下文切换时间
  • 中断延迟
  • 同步机制(标志,信号量,互斥,邮箱,队列......)
  • 优先级反转处理
  • 内存管理支持(即内存池)
  • 日程安排政策支持
  • MMU支持
  • 流程支持
  • 内存足迹
  • 内核本身的效率
  • POSIX与非POSIX API的
  • 可用的软件生态系统(a.k.a中间件)
  • ...

更多关注点,取决于您将要运行的应用程序。但一般来说,这些是我记得的,它们在各种RTOS之间产生差异。