如何在 Linux 上模拟中断机制

How to emulate the interrupts mecanism on Linux

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

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

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

我想使用 POSIX 信号,你觉得怎么样?

谢谢

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

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