| AR# | 29784 |
| Part | IP-Processor |
| Last Modified | 2007-12-04 00:00:00.0 |
| Status | Active |
| Keywords | interrupt, IRQ, exception, pre, fetch, MB, handle, handling, routine |
Keywords: interrupt, IRQ, exception, pre, fetch, MB, handle, handling, routine
When an interrupt is being handled by MicroBlaze, any subsequent instructions already fetched should be ignored and just pass through the processor pipeline without any effect. However, an exception occurring for any of these instructions is not ignored, erroneously causing it to be handled instead of the interrupt. The only affected exceptions are illegal opcode, instruction bus error, and instruction memory management exceptions.
A situation when this can occur is when the fetched instructions are illegal (which can be the case if prefetching past the last instruction in the code section), the interrupt occurs for the last instruction in the code section, and illegal opcode exceptions are enabled.
The problem is more likely to occur in systems where exceptions are more frequent; for example, Linux systems with the MMU enabled.