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