biju4u90
Full Member level 3
Hi,
Usually, an interrupt is generated by the hardware in a design and the processor reads the interrupt when a negative edge is detected at the interrupt line (assuming active low interrupt line). After the firmware reads the interrupt line and execute the ISR, it will clear the interrupt status register so that the interrupt line becomes '1' again.
Suppose I am having a system that has an active low interrupt line and multiple interrupts, say 10 interrupts. When any of these 10 interrupts is generated, the interrupt line goes low. Firmware executes the ISR and read the interrupt status register to know which interrupt among the 10 has occured. Assume that the hardware generates an interrupt and the interrupt line is low and firmware begins servicing the interrupt. Before the firmware completes servicing this interrupt, suppose a new interrupt is generated by the hardware. Since servicing the previous interrupt is not complete, the interrupt line will still be low. Since the system detects interrupt only when a negative edge is detected in the interrupt line, the new interrupt will be missed. How does a system handle this situation?
Usually, an interrupt is generated by the hardware in a design and the processor reads the interrupt when a negative edge is detected at the interrupt line (assuming active low interrupt line). After the firmware reads the interrupt line and execute the ISR, it will clear the interrupt status register so that the interrupt line becomes '1' again.
Suppose I am having a system that has an active low interrupt line and multiple interrupts, say 10 interrupts. When any of these 10 interrupts is generated, the interrupt line goes low. Firmware executes the ISR and read the interrupt status register to know which interrupt among the 10 has occured. Assume that the hardware generates an interrupt and the interrupt line is low and firmware begins servicing the interrupt. Before the firmware completes servicing this interrupt, suppose a new interrupt is generated by the hardware. Since servicing the previous interrupt is not complete, the interrupt line will still be low. Since the system detects interrupt only when a negative edge is detected in the interrupt line, the new interrupt will be missed. How does a system handle this situation?