又有奇思妙想,所长等大狭们探讨一下如何实现?可行性?
详细内容
名称:又有奇思妙想,所长等大狭们探讨一下如何实现?可行性?
做一个专用与MCU的基于消息驱动的前后台多"线程"操作系统OS,基本工作原理是;
1.把一个函数或多个需要顺序执行的函数看成是一个"线程"(Thread),一个"线程"是由一个消息来恢复运行的。一个"线程"执行一次后就挂起(Suspend)或等待时间到(TimeOut),等待下一次消息来恢复(Resume)运行。
2.消息可以是任何的一种事件发生的标志,可以用一个唯一的数值代表一个消息。比如可以用一个char变量传递256种消息。操作系统接收到一个消息就恢复(Resume)该消息的一个"线程"。
3.后台任务是一个无限循环,它在等待"线程"的恢复(Resume)。所有"线程"运行都是由后台任务调用一个OSThreadRun()来完成。
4.每个"线程"(Thread)有自己的优先级,当几个"线程"同时恢复时,OSThreadRun()先运行最高优先级的"线程"。
5.一个"线程"可以由后台任务恢复(Resume),也可以由中断恢复(Resume),也可以由一个"线程"恢复(Resume)。
6.这样的多"线程"不需做任务切换,所以不需要独立的堆栈空间,OS的code也应该比较小,特别适合RAM较小的MCU。