CHAPTER 7 INTERRUPT/EXCEPTION PROCESSING FUNCTION
147
User’s Manual U15195EJ5V0UD
Figure 7-6. Example of Servicing in Which Another Interrupt Request Is Issued While an
Interrupt Is Being Serviced (1/2)
Main routine
EI
EI
Interrupt request a
(level 3)
Servicing of a
Servicing of b
Servicing of c
Interrupt request c
(level 3)
Servicing of d
Servicing of e
EI
Interrupt request e
(level 2)
Servicing of f
EI
Servicing of g
Interrupt request g
(level 1)
Interrupt request h
(level 1)
Servicing of h
Interrupt request b is acknowledged because the
priority of b is higher than that of a and interrupts are
enabled.
Although the priority of interrupt request d is higher
than that of c, d is held pending because interrupts
are disabled.
Interrupt request f is held pending even if interrupts are
enabled because its priority is lower than that of e.
Interrupt request h is held pending even if interrupts are
enabled because its priority is the same as that of g.
Interrupt
request b
(level 2)
Interrupt request d
(level 2)
Interrupt request f
(level 3)
Caution The values of the EIPC and EIPSW registers must be saved before executing multiple
interrupts.
When returning from multiple interrupt servicing, restore the values of EIPC and EIPSW after
executing the DI instruction.
Remarks 1.
a to u in the figure are the temporary names of interrupt requests shown for the sake of
explanation.
2.
The default priority in the figure indicates the relative priority between two interrupt requests.