看看UCOS的调度处理:
生成任务1....n ----->把任务栈设置成和刚发生过中断,任务还未运行时候一样的状态
运行某一任务, 任务资源满足一直运行, 当有中断发生的时候,运行中断服务程序,保存当前任务栈, 中断服务程序退出前运行调度代码, 中断返回到满足运行条件的最高优先级的任务.(运行条件为该任务上次运行时等待的资源,本次中断可能时该任务获得等待的资源)
这就实现了实时,满足运行资源需求条件的最高优先级任务立即得到运行. 非常简单明了.
实际上ucos为了高可靠,高移植特性此外还包含了任务同步,任务通信,
所以代码不少,
如果只是把核心的部分抽出来,不见得会比HOTPOWER的麻烦.
而且实现的是真正的实时.
|