【发布时间】:2021-04-07 08:40:44
【问题描述】:
我正在尝试按照stm32f407 发现板上的教程实现任务计划。
有四个函数,每次执行一个1ms,然后切换到下一个函数。
教程定义了整个流程,我们将保存每个函数的每个堆栈寄存器,即这些寄存器xpsr,pc,lr,R0...R13,然后将下一个函数的这个值加载到PSP(处理器堆栈指针)在上下文切换时(这将发生在 systick_handler 内部,它将以 1 毫秒的间隔触发)。
我不明白的是,我认为寄存器是全局的,而不是像函数内部的变量那样私有的。那么他如何为每个函数保存这些寄存器值。这是给定的代码https://github.com/niekiran/CortexMxProgramming/blob/master/Source_code/015_task_scheduler/Src/main.c 如果有人可以向我简要介绍一下上下文切换部分,那么我将对我正在做的事情非常有信心
谢谢
【问题讨论】: