1:多任务启动
1:创建空闲任务
2:配置SysTick和PendSV为最低优先级
3:配置SysTick寄存器
4:调用SVC中断
2:SVC业务流程
1:获取当前任务栈顶
2:手动出栈 r4-r11,r14
3:更新栈顶到 PSP
4:使能全局中断,调用异常返回指令
3:PendSV业务流程
1:读取当前PSP值,获取当前任务栈顶
2:保存 s16-s31 到栈中,保存 r4-r11,r14到当前栈中
3:更新栈顶到当前任务控制块中,保存 r3 到栈中,关闭中断
4:查找优先级最高的任务,更新当前任务控制快,开启中断,出栈 r3 值
5:出栈 r 4-r11,r14 到当前栈中,出栈 s16-s31 到栈中,更新栈顶到PSP,调用移除返回指令