本帖最后由 Simon21ic 于 2016-3-3 23:58 编辑
是的,你使用状态机的思想实现的这个功能而已,while(1)实现的多任务,是我几年前就放弃的
如果只用中断实现多任务呢?任务切换不需要上下文切换,任务的调度,完全有中断的先后和优先级决定
这种是运行时的调度,就是运行时决定下一个执行的任务,所以,我的main函数里的while (1)里,只需要休眠就行
当然,实现这个,也是使用状态机的思想,只是我通过一些手段,使得应用开发,可以像RTOS类似,开发单独的任务
while(1)轮训,一般是编译时就决定了任务调度方式,即使用了某些变量作为信号,也是需要轮询到对应的任务后,才能处理,而很有可能之前轮询的任务,并没啥需要处理的
状态机思想,并不是用在这里就是状态机,用在其他地方就不是状态机了
共享堆栈的内核一般都是状态机实现的
|