小型 ARM 微控制器的 RTOS 内核之间的可量化差异 [关闭]
Posted
技术标签:
【中文标题】小型 ARM 微控制器的 RTOS 内核之间的可量化差异 [关闭]【英文标题】:Quantifiable differences between RTOS kernels for small ARM microcontrollers [closed] 【发布时间】:2014-03-08 19:38:46 【问题描述】:有许多不同的 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()
和
isr_SetFlag()
,但这些函数内部使用服务请求队列,这意味着大部分请求是可抢占的。
【问题讨论】:
根据Adi,您需要量化优点。 开源是否也意味着免版税?您是否需要文件系统、TCP/IP 堆栈、代码大小是否重要、中断延迟是否重要、是否需要支持等。以及您的三个列表,eCos、vxWorks、RTEMS、Integrity、Nucleus、OS-9、MQX , QNX, embOS, ThreadX, TRON, MicroC/OS-II 等。许多都默认或通过要求提供源代码。 BSD 变体和 Linux 也可以工作。对 Cortex-M 的平台支持通常是非常有限的代码(200-500 行汇编程序)。即,很容易将任何 ARM OS 移植到 Cortex-M 的源代码。 【参考方案1】:在选择 RTOS 时可以考虑的一些功能:
上下文切换时间 中断延迟 同步机制(标志、信号量、互斥体、邮箱、队列……) 优先级反转处理 内存管理支持(即内存池) 调度策略支持 MMU 支持 流程支持 内存占用 内核本身的效率 POSIX 与非 POSIX API 可用的软件生态系统(又名中间件) ...更关注哪一点取决于您要运行的应用程序。但总的来说,这些是我能记住的东西,它们在不同的 RTOS 之间产生了差异。
【讨论】:
以上是关于小型 ARM 微控制器的 RTOS 内核之间的可量化差异 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章