我是一个试图在嵌入式Linux主板上获得电平触发中断的新手。我正在使用poll()来等待中断事件。我成功地获得了边沿触发中断。
如何获得关卡触发的中断? 我该如何设置边缘?
答案 0 :(得分:1)
下降或上升转换触发边沿触发中断。虽然轮询是处理此类中断的一种选择,但为了节省CPU周期,创建一个线程,可以由内核调度,直到发生中断,并在中断发生时将其唤醒。这样,主程序就不会被锁定在轮询中。
中断线处于电平触发中断的高电平或低电平。边缘概念不适用于电平触发中断。在这里,CPU应扫描设备以找到触发中断的设备。一旦设备被服务,它将继续重新检查可能需要该服务的其他设备的中断线状态(中断共享)。如果没有立即Acked(清除/处理),由于重复/连续调用中断处理程序注意,系统可以进入挂起状态。也就是说,外部设备应断言IRQ信号,直到软件在写入器件寄存器时清除待处理的中断。如果许多设备触发了IRQ信号,则在所有设备驱动程序为其各自的设备提供服务之前,将出现高电平或低电平。所以,这应该立即处理。