【问题标题】:Free RTOS context switching免费的 RTOS 上下文切换
【发布时间】:2021-03-09 15:34:36
【问题描述】:

我是 RTOS 编程的初学者。我对此有疑问。

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

【问题讨论】:

    标签: multitasking freertos


    【解决方案1】:

    我建议阅读https://www.freertos.org 上的非常好的文档,例如RTOS Fundamentals

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

    【讨论】:

      【解决方案2】:

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

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

      在对此的中断处理中,FreeRTOS schedular 会根据 Ready Queue 任务列表及其优先级来切换任务。

      【讨论】:

        猜你喜欢
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 2021-07-18
        • 2021-04-07
        • 2011-07-23
        • 1970-01-01
        • 2017-09-09
        相关资源
        最近更新 更多