如何禁用内核中断

时间:2014-07-08 15:29:37

标签: linux linux-kernel arm linux-device-driver embedded-linux

我正在开发一个项目,其中包括来自freescale和linux 2.6.35的imx28。要与外围设备(EXAR xr20m1280)通信,我需要编写一个使用SPI总线的内核驱动程序。

该组件是桥接SPI< - >。快速UART(16Mbit / s)和驱动程序开发的难点在于快速读取数据以避免覆盖。在测试过程中,我看到了一些问题,因为在读取数据时会出现中断过程。

我知道禁用中断并不是一个好主意,但我找不到其他解决方案。但是要以最优雅的方式对此进行编程,我有一些问题:

  • 是使用disable_irq()和enable_irq()的最佳方法吗?我试过 spinlock_irqsave()但会使系统崩溃。
  • 在内核空间中是否有一个结构(或类似的东西),我可以读取所有已启用的中断?
  • 如果没有,是否有创建通用驱动程序的解决方案(没有驱动程序代码中断的次数)?

0 个答案:

没有答案