发现自己理解错了。<br />sp是什么指向指向任务的堆栈,我一直对此比较迷惑。<br />重新理了一遍代码,原来是这样子。<br />ucos-ii初始化过程中,用OSTaskCreate()创建一新任务,该任务所定义的堆栈位置就放到了该任务的tcb当中,然后调用OSStart(),启动多任务,该函数调用OSStartHighRdy() -〉__OSStartHighRdy() -> OSIntCtxSw_1,此时SP指针就指向该任务定义的堆栈了。再次发生任务切换时,就会调用OSIntCtxSw,任务寄存器就会保存在任务堆栈,然后在新任务堆栈中恢复cpu寄存器,实现了任务切换。
|