OS应发挥cortex-m的特性!
Opened this issue · 0 comments
samos2011 commented
有幸发现这个OS和你的博客,能自主编写OS的人较少,但你参考的这几个OS(FreeRTOS、uCOS, RT-Thread, LiteOS)都没有发挥Cortex-M的特性,都关闭了中断。它们为了兼容更多的MCU而采用了古老的关闭中断的方式避免OS函数重入。
Cortex-M的众多特性就是为OS而生的,包括双堆栈、SVC、PendSV、EXC_RETURN、咬尾中断、原子指令等等,完全不用关闭中断即可实现OS。
Cortex-M解决了两大普通MCU和普通RTOS的硬伤,1:关闭了中断,导致一些敏感事件响应可能存在延迟,例如外部中断(虽然一般场景对于短暂的关闭中断不敏感)。2:每个任务的堆栈空间都要考虑中断嵌套的额外开销。但Cortex-M不会有上述问题。
唯一值得参考的为Cortex-M设计的OS是ARM CMSIS下的RTX。