下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

内核
最新资讯
FreeRTOS-Plus-TCP 现具有统一的 IPv4 和 IPv6 功能,支持多接口。
为基于 FreeRTOS 的固件实现防砖化 MCU FOTA:
宣布停止支持 FreeRTOS 202012 LTS。
FreeRTOS 网站现已提供简体中文版本
新的 FreeRTOS Long Term Support 版本现已发布。

RTOS上下文切换 - 步骤 7
[详细示例]

RTOS tick

从 vPortYieldFromTick() 退出,返回到 SIG_OUTPUT_COMPARE1A(),其中最后一条指令返回自 interrupt (RETI)。RETI 指令假设,堆栈上的下一个值是中断发生时存放在其上的返回地址。

AtoB6.gif

发生 RTOS tick 中断时,AVR 自动将 TaskA 返回地址存放在堆栈上,也即 TaskA 中下一条要执行指令的地址。RTOS tick 处理程序更改栈指针,让其当前指向 TaskB 栈。因此,使用 RETI 指令从堆栈弹出的返回地址实际上是 TaskB 在挂起前即将执行的指令的地址。

RTOS tick 中断了 TaskA,但却返回到 TaskB上下文切换完成




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.