又有奇思妙想,所長等大狹們探討一下如何實現(xiàn)?可行性?
做一個專用與MCU的基于消息驅(qū)動的前后臺多"線程"操作系統(tǒng)OS,基本工作原理是;
1. 把一個函數(shù)或多個需要順序執(zhí)行的函數(shù)看成是一個"線程"(Thread),一個"線程"是由一個消息來恢復(fù) 運行的。一個"線程"執(zhí)行一次后就掛起(Suspend)或等待時間到(TimeOut),等待下一次消息來恢復(fù)(Resume)運行。
2. 消息可以是任何的一種事件發(fā)生的標(biāo)志,可以用一個唯一的數(shù)值代表一個消息。比如可以用一個char變量 傳遞256種消息。操作系統(tǒng)接收到一個消息就恢復(fù)(Resume)該消息的一個"線程"。
3. 后臺任務(wù)是一個無限循環(huán),它在等待"線程"的恢復(fù)(Resume)。所有"線程"運行都是由后臺任務(wù)調(diào)用一個OSThreadRun()來完成。
4. 每個"線程"(Thread)有自己的優(yōu)先級,當(dāng)幾個"線程"同時恢復(fù)時,OSThreadRun()先運行最高優(yōu)先級的"線程"。
5. 一個"線程"可以由后臺任務(wù)恢復(fù)(Resume),也可以由中斷恢復(fù)(Resume),也可以由一個"線程"恢復(fù)(Resume)。
6. 這樣的多"線程"不需做任務(wù)切換,所以不需要獨立的堆??臻g,OS的code也應(yīng)該比較小,特別適合RAM較小的MCU。