- 33 -
•
For service calls that can be issued from only non-task context or from both task context and non-task
context.
When the I flag before issuing a service call is 1
When the I flag before issuing a service call is 0
Service call issued
service call processing
I flag
IPL
1
4
system.IPL
system.IPL
1
0
4
1
4
Service call issued
service call processing
I flag
IPL
0
4
system.IPL
system.IPL
0
0
4
Task or
Handler
Task or
Handler
Task or
Handler
Task or
Handler
4
Figure 3.24 Interrupt control in a Service Call that can be Issued from a Task-independent
As shown in Figure 3.23 and Figure 3.24, the interrupt enable flag and IPL change in a service call. For this reason, if you
want to disable interrupts in a user application, Renesas does not recommend using the method for manipulating the inter-
rupt disable flag and IPL to disable the interrupts.
The following two methods for interrupt control are recommended:
1. Modify the interrupt control register (SFR) for the interrupt you want to be disabled.
2. Use service calls loc_cpu(iloc_cpu) and unl_cpu(iunl_cpu).
The interrupts that can be controlled by the loc_cpu service call are only the kernel interrupt. Use method 1 to control the
non-kernel interrupts.