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