A lightweight, energy-awareness, non-preemptive, event-driven, easy-to-use embedded OS for micro processors.
對小型的MCU 處理器來說,任何無必要的RAM/ROM 開銷都要盡量避免。
Haddock-OS 裡,所有任務都是事件驅動,任務間通過IPC signal 相互通信,協同工作。
沒有preemptive system 裡任務切換帶來的開銷,也不需要對共享資源加鎖( note : ISR 中斷服務處理程序要求盡量高效簡潔,且不允許修改共享資源)。
細粒度能量管理(模塊級):
每個任務都可以單獨設定休眠喚醒的回調函數。
整體調度(系統級):
除了任務級別的休眠喚醒之外,OS scheduler 會根據目前系統(全部任務)的狀態(休眠中/ 有pending signals 待處理/ 下一個timer timeout 事件即將到達)來選擇是否將CPU 休眠。
移植方便:
pure C 實現,沒有彙編,方便採取IAR / Keil 等集成開發環境。理論上,只需要完成硬件抽象層的timer system 和UART 即可。
( note : 我對移植不在行,僅限於通過datasheet 掌握相關參數的程度;還望驅動大神們體驗補充,一起完善。)
Haddock-OS 整體實現也比較輕巧簡潔,容易理解。
使用簡單: 雖然不是開箱即用,但也比較簡單。
用戶定義任務,定義任務signal,init function,entry point,再按照系統核心組件(memory pool,timer,IPC)的使用接口,就可以開始MCU lightweight multi-tasking 之旅了。
由於MCU 的RAM/ROM 資源很寶貴,因此Haddock-OS 可裁剪資源以滿足不同系統的需求。
最大任務數,最大任務優先級數量,最大timer 數量,可分配的內存池資源,都可以配置。
Commercial Use Friendly: Mozilla Public License, version 2.0