新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 分析uC/OS-II在MSP430单片机芯片上实现RTOS的问题

分析uC/OS-II在MSP430单片机芯片上实现RTOS的问题

作者:时间:2018-09-14来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201809/389175.htm

(6)高优先级任务2被更高优先级的任务3中止,在任务3运行完后,任务调度器将直接调度执行任务1(按照优先级调度)。

由于各个任务的ISP和TSP在任务切换前都已经保存在该任务的TCB中,任务1的堆栈指针和R4可以回到该任务在其任务堆栈和中断堆栈的正确的位置。

任务2被中止包括两种情况。一是任务2被别的任务删除,此时任务2在中断堆栈中占用的空间会自动释放。二是任务2被别的任务挂起,此时应在将程序挂起的函数TaskSuspend()中添加一段代码,将其保存在中断堆栈中的状态移到自己的任务堆栈中,同时将其TCB中的FromInt标志设为0。这样,在任务2解除挂起后,会去任务堆栈中恢复其状态。

(7)中断中发生中断嵌套。

发生中断嵌套时,要按照中断嵌套的机制进行处理。首先,在中断嵌套中,不允许进行任务调度,这样,即使在中断嵌套中激发了更高优先级的任务,也必须等到最后中断退出前才进行调度执行。这一点是由系统设计保证的。其次,保存寄存器和函数调用所占用的RAM字节全部在中断嵌套中。在退出中断嵌套时,不必将TCB中的FromInt标志复位。




评论


相关推荐

技术专区

关闭