-
chg_ims
ichg_ims
-
ER chg_ims (IMASK imask);
ER ichg_ims (IMASK imask);
These service calls change PSW.IPL to the value specified by
imask. Ranges of the value that can be specified for
imask are from 0 to 15.
In the chg_ims, the system shifts to the dispatching disabled state when other than 0 is specified for
imask, (it is equivalent to
dis_dsp.) and shifts to the dispatching enabled state when 0 is specified for
imask (it is equivalent to
ena_dsp.).
On the other hand, the ichg_ims does not change the dispatching disabled / enabled state.
Service Call that can be issued
|
|
|
|
|
|
|
|
|
|
Note 1 In the non-task, the interrupt mask must not lower PSW.IPL more than it starts.
Note 2 The dispatching disabled state changed by issuing the
chg_ims must be cancelled before the task that issued this service call moves to the DORMANT state.
Note 3 If a service call (such as
wai_sem,
wai_flg) that may move the status of the invoking task is issued while the dispatching disabled state, that service call returns E_CTX regardless of whether the required condition is immediately satisfied.
Note 4 The RI600PX realizes the
TIME MANAGEMENT FUNCTIONS by using base clock timer interrupts that occurs at constant intervals. If acknowledgment of the relevant base clock timer interrupt is disabled by issuing this service call, the
TIME MANAGEMENT FUNCTIONS may no longer operate normally.
Note 5 Do not issue
ena_dsp while a task changes PSW.IPL to other than 0 by using
chg_ims. If issuing
ena_dsp, the system moves to the dispatching enabled state. If task dispatching occurs, PSW is changed for the dispatched task. Therefore PSW.IPL may be lowered without intending it
|
|
|
|
|
|
|
|
|
|
|
- This service call was issued in the CPU locked state.
- The ichg_ims was issued from task.
- The chg_ims was issued from non-task.
|
|
|
Memory access violation. (only for chg_ims)
- Stack pointer points out of user stack for invoking task.
|