在一个小型嵌入式系统项目中,我们有一些希望在线程中运行的代码,因此我们选择在嵌入式 RTOS (eCos) 之上构建。
以前,我们在 main() 中使用了一个循环执行程序,它驱动每个任务都实现为状态机。对于某些任务,我们遇到了需要将任务分解为许多细粒度状态的问题,从而使代码更加复杂。
当切换到 RTOS 时,我们发现如果我们将每个单独的任务分配给它自己的线程,每个线程堆栈的内存使用量会迅速增加。(我们只有 64k 并且需要用于通信缓冲区的内存)
我们正在考虑为我们的通信任务使用一个线程,并为循环执行程序使用另一个线程。循环执行器将驱动其他逻辑任务。
像这样混合 RTOS 和循环执行是否有意义?