该例中在调用OSStart后,操作系统发现任务Taskl的优先级最高,于是操作系统就调度任务Taskl使其投入运行,而任务Task2暂时不能获得处理器的使用权。任务Taskl首先点亮一个LED,然后延时一段时间,当运行到OSTimeDly处时,该任务被挂起而处于等待状态,此时任务Task2成为优先级最高的就绪态任务,于是操作系统调度Task2运行。当5个时钟节拍的延时时间结束时,系统时间节拍中断服务子程序会重新将任务Taskl置于就绪状态,此时任务Taskl再一次成为优先级最高的就绪态任务,于是操作系统保存任务Task2的状态,并恢复任务Taskl的状态使其又一次获得处理器的使用权。此后程序执行过程将重复上述步骤。可以看到,在这个例子中的现象是某个LED灯不停的闪烁。
μCOS—II操作系统内核是实时可剥夺型的,这意味着在任务执行过程中或中断服务子程序中,一旦有一个新的更高优先级的任务就绪,内核将立刻调度此新任务运行,这说明响应任务的时间是即刻的、确定的。
综上所述,基于嵌入式操作系统的应用程序开发过程相对于以往传统应用程序开发大为简化而且任务级响应时间也得到最优化。
4 结束语
通过将移植过程中修改的μCOS—II内核代码与上述例子中的应用程序代码在μVision3集成开发环境中编辑整合后进行编译、链接并且下载到目标硬件平台进行长时间观察,发现LED不停的闪烁,说明本移植过程是成功的。