详解FreeRTOS:嵌入式多任务系统的任务上下文机制(理论篇—3)

275 阅读1分钟

任务可以看作是用户程序在处理器等硬件上的运行,是一个动态的概念。任务在处理器上运行的某一时刻,有它自己的状态,即处理器所有的寄存器的数据,这个叫作任务的上下文,可以理解为是处理器的“寄存器数据快照”。通过这些数据,操作系统可以随时打断任务的运行或者加载新的任务,从而实现不同任务的切换运行。

任务上下文是跟处理器密切相关的概念,不同的处理器有不同的处理器上下文定义,在RTOS设计任务上下文时经常会把大部分硬件寄存器作为任务上下文的内容。

当操作系统需要运行其他的任务时,操作系统首先会保存和当前任务相关的寄存器的内容到当前任务的栈中,然后从将要被加载的任务的栈中取出之前保存的全部寄存器的内容并加载到相关的寄存器中,从而继续运行被加载的任务,这个过程叫作任务上下文切换,也叫做任务切换。

详解FreeRTOS
系列专栏请参见:blog.csdn.net/m0_38106923…

嵌入式技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~    

举个例子,假设系统中有两个任务A、B。当前处理器正在运行A任务。此时任务A