之前在公司实习时接触到Operating system abstraction layer(OSAL)这款轻量级的抢占式操作系统,当时利用其在8051上做蓝牙数据相关应用,觉得OSAL还比较适用于低性能处理器中多任务系统。自己在实验室时经常在Xilinx EDK中从事基于Microblaze的嵌入式相关研究,于是对OSAL进行重构,使其方便适用于Xilinx EDK Microblaze系统中。相关修改和增加的功能如下:
-
- 添加对中断与定时器的封装,使得在EDK系统中添加硬件支持即可,简化了底层驱动设置。
- 将任务的创建与调度形式由静态变为动态,增加任务调度灵活性
- 对任务添加优先级属性,使其与任务ID独立
- 缩减时钟日期,存储管理等机制
- 拓展任务之间的消息与数据传递机制
代码经调试后运行正常,源码与示例下载地址: 针对Microblaze的OSAL