任务切换
在多任务情况下,利用中断功能,以及现场保护。
当前任务->停止->用到的寄存器入栈->时间片到了->出栈->恢复继续执行
一共有三个任务为例:
任务1,任务2,任务三。
当时间片1ms到来的时候进入中断,这时候cpu将一部分寄存器入栈,然后freeRTOS又将其他用到的寄存器入栈。注意入的是任务栈,不是cpu的中断处理栈。然后freeRTOS将sp指针指向任务2的栈,将栈帧里面的PC指针指向任务2的PC,LR寄存器也改成任务2的LR。cpu恢复现场的时候就不是恢复任务1的现场,而是任务2的现场,从而达到任务切换的效果。