【问题标题】:Bottom Halves on FreeRTOS?FreeRTOS 的下半部分?
【发布时间】:2016-11-19 12:41:28
【问题描述】:

我听说过 FreeRTOS 中的延迟中断,但据我了解,ISR 为完成必要工作而切换到的任务在任务/进程上下文中运行。是否有类似的方案,例如 tasklet 或 softirq,其中延迟工作在中断上下文而不是进程上下文中运行?

【问题讨论】:

  • 闻起来像XY problem。你想达到什么目的?
  • @LPs 正在阅读不同操作系统如何处理中断。发现 FreeRTOS 和 Linux 中延迟中断架构的差异,很好奇这是否有任何特殊原因
  • 注意:在像 ARM COrtex-M3-7 这样的大型 MCU 上,使用优先级通常会更好。延迟中断处理程序给中断函数本身增加了很大的开销,但给系统的其余部分增加了更多开销。

标签: linux-kernel operating-system embedded interrupt freertos


【解决方案1】:

Free RTOS 中的 ISR 例程和延迟中断处理程序任务的工作方式类似于 linux 中的上半部分和下半部分(Tasklets)。 当 ISR 需要执行冗长的操作时,它们通常用于处理频繁的中断请求。 在 freeRTOS 中,要将函数的处理推迟到 RTOS 守护程序任务,请使用 vPendableFunction 或 xTimerPendFunctionCallFromISR()。这类似于在 linux 中实现下半部分(Tasklets)。更多信息请点击here

【讨论】:

    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 2013-02-19
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多