章节列表

任务定义与切换原理

2018-03-12 11:36:28 +0000 李述铜

从这节课时开始,我们开始具体学习RTOS相关的实现。

整体上而言,该章的所有课时都有一定的难度,需要你付出比较大的精力。但是一旦掌握的话,就意味着你掌握了RTOS的核心工作原理。

主要内容

本课时主要介绍两大内容:任务的定义和任务切换的本质。

任务的定义

虽然在使用RTOS时,我们一般用函数来表示任务,但实际任务所包含的东西更多。

任务切换本质

结合RTOS原理及功能简介课时中的这幅图,我们知道RTOS负责在各个任务之间来回切换运行,来实现看起来像是多个任务同时运行的表现

为了实现这种来回切换,我们需要对任务的状态不断地进行保存和恢复

根据课程内容,你需要理解的是:我们保存任务的哪些状态?保存在哪里?

最后我们得出的结论是:将任务的状态保存在任务的专属堆栈中,而这些状态中首要保存的就是内核寄存器的值。

重点难点

这节课程的难点在于理解RTOS是怎样实现多个任务之间来回切换执行。以我们前面课时的学习指南中举的例子说明。

假如你(CPU)要在一天中分时负责多个同事的项目(任务),那么你每段时间只能做一个项目(任务)的一小部分(一小部分代码),然后记下这个项目的完成状态(任务状态);接下来找到下一个要做的项目,根据其之前保存的项目完成状态(任务状态),再在其基础之上完成。

想像一下,如果你希望能够每天都能无错地开展各个项目,那么对你的要求就是要正确地记录项目的状态,需要时根据项目状态继续下一步行动。

RTOS如果想分时执行多个任务,其原理正是如此。

注意事项

常见问题