STM32的任务调度可以有两种方式
1)通过systick_handler定时器调度
2)执行一个系统调用
任务调度的步骤总结为如下:
保存程序的上下文即当前任务的寄存器,保存存储寄存器的任务堆栈的地址。
根据下一个任务的任务堆栈地址依次弹出下一个任务的16个寄存器。
堆栈中的寄存器保存顺序如下,
XPSR
SP(代表MSP或PSP,在任务调度完成后,根据PSP的值定位了是哪个任务)
LR(存储函数的返回)
R12
R3
R2
R1
R0
R11
R10
R9
R8
R7
R6
R5
R4
文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。