【问题标题】:How to emulate the interrupts mecanism on Linux如何在 Linux 上模拟中断机制
【发布时间】:2020-10-28 14:27:13
【问题描述】:

我正在使用 FreeRTOS 为微控制器开发程序。我的微控制器有一个 CAN 驱动程序并使用硬件中断。当 CAN 驱动程序完成 CAN 帧传输时会触发中断。

为简单起见,我正在 Linux (Ubuntu 20) 上开发和测试某些部分。我在 Linux 上使用 socketCAN,带有一个虚拟 CAN 端口。

是否可以在 Linux 上模拟硬件中断?

我在考虑使用 POSIX 信号,你觉得呢?

谢谢

【问题讨论】:

  • 您考虑过qemu(取决于您的目标MCU)吗?
  • 它似乎没有解决我的问题。此外,它不支持 Cortex-R 处理器。

标签: linux embedded interrupt freertos


【解决方案1】:

我找到了解决方案。 解决方法是并行执行一个任务,调用中断向量通常指向的函数。

在找到解决方案时,我注意到在 POSIX_GCC 的 FreeRTOS 任务之间使用 POSIX 信号可能会导致 linux 系统调用出现问题。 我还发现,如果 FreeRTOS 任务与经典 pthread 一起使用,它们会占用 CPU 时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2016-10-03
    • 1970-01-01
    • 2012-05-03
    相关资源
    最近更新 更多