断点数据:把任务被中止运行时的位置叫做断点,把当时存放在CPU的PC、PSW和通用寄存器等各寄存器中的数据叫做断点数据。
断点指针:任务被终止时(在PC寄存器中)cpu的当前程序运行指针。
任务堆栈指针:指向任务堆栈栈顶的指针(一个任务包含:任务控制块、任务堆栈、任务代码)。
ucos进行任务切换时,OSCtxSW()要依次做如下7项工作:
1 把被中止任务的断点指针保存到任务堆栈中;
2 把CPU通用寄存器的内容保存到任务堆栈中;
3 把被中止任务的任务堆栈指针当前值保存到该任务的任务控制块的OSTCBStkPtr中;
4 获得待运行任务的任务控制块;
5 使CPU通过任务控制块获得待运行任务的任务堆栈指针;
6 把待运行任务堆栈中的通用寄存器的内容恢复到CPU的通用寄存器中;
7 使CPU获得待运行任务的断点指针(该指针是待运行任务在上一次被调度器中止运行时保留在任务堆栈中的;