免费的 RTOS 上下文切换

问题描述

我是 RTOS 编程的初学者。我有同样的问题。

查询:我了解上下文切换会根据分配的优先级在各种任务之间发生。我想知道从技术上讲,高优先级任务究竟是如何中断低优先级任务的?是否每个任务都分配给硬件中断引脚,以便每当微控制器在该引脚上被外部硬件中断时,如果与当前正在处理的任务相比,特定任务被分配了更高的优先级,则处理该任务?但实际上,如果程序中有 128 个任务,它可能需要 7 个保留用于中断的硬件引脚。我缺少什么逻辑?

解决方法

我建议阅读 https://www.freertos.org 上相当不错的文档,例如RTOS Fundamentals

我相信这将提供一个很好的概述和相关详细信息。 除此之外,您会发现通常不需要外部硬件引脚来运行多任务操作系统。

,

免费 RTOS 仅使用 sys_tick/os_tick hw-interrupt 进行上下文切换。这是在任何底层控制器上配置的高精度周期性中断

例如在 Cortex M 上: https://www.keil.com/pack/doc/CMSIS/Core/html/group__SysTick__gr.html

在此中断处理中,FreeRTOS schedular 根据就绪队列任务列表及其优先级切换任务。