有许多不同的 RTOS 可用于微控制器。我专门寻找支持 ARM Cortex M 处理器的 RTOS。另外,我对闭源解决方案不感兴趣。
试图从网站和邮件列表中比较每个 RTOS 的相对优点似乎相当困难,因为它们大多似乎具有相同的功能并执行相同的操作。只有在尝试使用每个 RTOS 执行某些任务后,真正的差异才会变得明显。
我知道这是一个有点主观的问题,可能很难回答 - 但一定有很多人实际上尝试过几种不同的 RTOS,并对每种 RTOS 的相对优点形成了自己的看法。
我对 FreeRTOS、ChibiOS 和 Coocox CoOS 特别感兴趣,但也非常欢迎其他选择。
例如:在 ChibiOS 中,ISR 似乎可以调用任何系统函数,但这些调用必须包装在chSysLockFromIsr()
/chSysUnlockFromIsr()
并且代码在这些部分中是不可抢占的。在 CoOS 中,唯一可调用的函数是以isr_
例如isr_PostSem()
, isr_PostMail()
, isr_PostQueueMail()
and
isr_SetFlag()
,但这些函数内部使用服务请求队列,这意味着大多数请求是可抢占的。
选择 RTOS 时可以考虑的一些功能:
- 上下文切换时间
- 中断延迟
- 同步机制(标志、信号量、互斥体、邮箱、队列……)
- 优先级反转处理
- 内存管理支持(即内存池)
- 调度策略支持
- 内存管理单元支持
- 流程支持
- 内存占用
- 内核本身的效率
- POSIX 与非 POSIX API
- 可用的软件生态系统(又称中间件)
- ...
更关注哪一点取决于您要运行的应用程序。但总的来说,这些是我能记住的、使各种 RTOS 之间产生差异的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)