DoraOS icon indicating copy to clipboard operation
DoraOS copied to clipboard

DoraOS 是我个人所写的RTOS内核,结合FreeRTOS、uCOS, RT-Thread, LiteOS 的特性所写,取其精华,去其糟粕,本项目将持续维护,欢迎大家fork与star。

Results 2 DoraOS issues
Sort by recently updated
recently updated
newest added

有幸发现这个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。

https://github.com/jiejieTop/DoraOS/blob/7d49b723456098b3df6223732b78a268b8c05f77/src/task.c#L425