This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi BU,
If at the same time, there are 2 interrupts, with similar priority, coming, which one will be picked by VIM controller to be serviced?
As an example, the RTI interrupt and IPC interrupt both coming, VIM will pick which one to service at first? If the first serviced interrupt come again when the corresponding ISR is not finished, and after the ISR, the second one will be serviced or continuously service the first interrupt? There is a situation, the first interrupt is periodically happened, so the second one interrupt will never be serviced.
Please clarify the VIM's behavior under this situation.
Thanks and Regards,
Will
Hi Will Gao,
It depends which interrupt will be accepted by VIM first based on the first bus transaction to VIM from the respective IPs.
It will service the first ISR. During this ISR execution, the CPU mode is changed from IRQ mode to SVC mode so the newer interrupts can be accepted. If the current ISR interrupt priority is higher than the new request VIM will not accept the interrupt at all.
What happens to the interrupt which was not accepted ? It will still be set in the IP till the current ISR execution is in progress. When the IRQ is completed it sends an ACK to VIM, the VIM assumes the IRQ execution is completed and after the same it also moves the CPU mode back from SVC to IRQ and then back to SYS/USR mode.
Hope it helps.
Best Regards,
Aakash