我是一个拥有硬件和设备驱动程序的老手,并且使用较早的Linux版本进行硬件控制。我最近回到了使用嵌入式处理的Linux和设备控制的游戏中,并且发现Linux世界发生了很多变化(为了更好)。然而,我正在为一个硬件控制问题而苦苦挣扎,这个问题涉及到一个非常快速的基于SPI的帧数据传输内核模块,它需要在短时间帧内(5毫秒)打开所有中断,以确保数据帧的正确数据传输时序。在Linux的'过去',人们会使用save_flags - cli() - sti()框架来禁用关键部分的中断。在新的(2.6.33和更新版本)Linux IRQ控制框架内完成此操作的最简单方法是什么?如何在短时间(5ms)帧数据传输期间阻塞所有IRQ's
斯科特
巴士掌握任何人?现在大多数硬件应该能够在没有CPU干预的情况下将数据传输到RAM。这是做到这一点的正确方法。 IIRC,cli()/ sti()应该仍然是2.6的向后兼容性。 – Dummy00001 2010-07-02 10:18:43
5ms不再是“短” - 这实际上是数百万*浪费的CPU周期...... – caf 2010-07-04 14:40:27