之前在公司實習時接觸到Operating system abstraction layer(OSAL)這款輕量級的搶占式作業系統,當時利用其在8051上做藍牙資料相關應用,覺得OSAL還比較适用于低性能處理器中多任務系統。自己在實驗室時經常在Xilinx EDK中從事基于Microblaze的嵌入式相關研究,于是對OSAL進行重構,使其友善适用于Xilinx EDK Microblaze系統中。相關修改和增加的功能如下:
-
- 添加對中斷與定時器的封裝,使得在EDK系統中新增硬體支援即可,簡化了底層驅動設定。
- 将任務的建立與排程形式由靜态變為動态,增加任務排程靈活性
- 對任務添加優先級屬性,使其與任務ID獨立
- 縮減時鐘日期,存儲管理等機制
- 拓展任務之間的消息與資料傳遞機制
代碼經調試後運作正常,源碼與示例下載下傳位址: 針對Microblaze的OSAL