Linux 中的 IO 中断与裸机相比有多快? (ARM、树莓派)

Linux 中的 IO 中断与裸机相比有多快? (ARM、树莓派)

我读到 Linux 中的中断(这是关于 Raspberry Pi)可能需要“很长时间”来处理,或者让我们说“开始做程序员想要的事情”。这是真的吗?情况有多糟糕? Python和C有很大区别吗?

在硬件(“裸机”)中,应该只需要几个周期来跳转中断处理程序/函数的开始,对吗?如果我解释正确的是,在新的 Raspberry Pi 4 上,它应该花费不到 10 纳秒。我最感兴趣的是 Raspberry Pi 和其他基于 ARM 的硬件,但其他平台的数据也很好。我认为 ARM 裸机比 AVR (Arduino) 快很多..?

编辑:稍微澄清了问题。谢谢@dirkt!

额外问题:在没有操作系统的纯汇编中,我可能期望从物理事件到中断处理程序运行的时间每次都几乎相同。 Linux 中的差异有多大? (因为内核可能还有其他事情要做,等等)

编辑2:找到这个博客文章,其中 Raspberry Pi Zero 与 Arduino Uno 进行了较量。作者还尝试了一个内核模块,它似乎几乎与裸机 AVR 一样快(但它是 16 MHz AVR 与 1GHz ARM!),我想知道,这与 ARM 上的裸机有多接近?非常接近我原来的问题,但没有裸机 ARM。

答案1

我刚刚读了这篇文章。关于内核模块。我同意这可能是省电的。我也在想这可能是因为其他中断。

内核模块应该和裸机一样快,如果条件相同:相同的电源状态,相同的其他中断。

请注意内核模块可能会使您的系统崩溃,因此请使其保持小而简单。

相关内容