- 174 -
unl_cpu
Unlock the CPU
iunl_cpu
Unlock the CPU (handler only)
[
[
[
[
C
C
L
L
a
a
n
n
g
g
u
u
a
a
g
g
e
e
A
A
P
P
I
I
]
]
]
]
ER ercd = unl_cpu();
ER ercd = iunl_cpu();
z
z
P
P
a
a
r
r
a
a
m
m
e
e
t
t
e
e
r
r
s
s
None
z
z
R
R
e
e
t
t
u
u
r
r
n
n
P
P
a
a
r
r
a
a
m
m
e
e
t
t
e
e
r
r
s
s
ER ercd Terminated
normally (E_OK)
[
[
[
[
A
A
s
s
s
s
e
e
m
m
b
b
l
l
y
y
l
l
a
a
n
n
g
g
u
u
a
a
g
g
e
e
A
A
P
P
I
I
]
]
]
]
.include mr100.inc
unl_cpu
iunl_cpu
z
z
P
P
a
a
r
r
a
a
m
m
e
e
t
t
e
e
r
r
s
s
None
z
z
R
R
e
e
g
g
i
i
s
s
t
t
e
e
r
r
c
c
o
o
n
n
t
t
e
e
n
n
t
t
s
s
a
a
f
f
t
t
e
e
r
r
s
s
e
e
r
r
v
v
i
i
c
c
e
e
c
c
a
a
l
l
l
l
i
i
s
s
i
i
s
s
s
s
u
u
e
e
d
d
Register name
Content after service call is issued
R0 Error
code
[
[
[
[
E
E
r
r
r
r
o
o
r
r
c
c
o
o
d
d
e
e
]
]
]
]
None
[
[
[
[
F
F
u
u
n
n
c
c
t
t
i
i
o
o
n
n
a
a
l
l
d
d
e
e
s
s
c
c
r
r
i
i
p
p
t
t
i
i
o
o
n
n
]
]
]
]
This service call frees the system from a CPU locked state that was set by the loc_cpu or iloc_cpu service call. If the
unl_cpu service call is issued from a dispatching enabled state, task scheduling is performed. If the system was put into a
CPU locked state by invoking iloc_cpu within an interrupt handler, the system must always be placed out of a CPU locked
state by invoking iunl_cpu before it returns from the interrupt handler.
The CPU locked state and the dispatching disabled state are managed independently of each other. Therefore, the system
cannot be freed from a dispatching disabled state by the unl_cpu or iunl_cpu service call unless the ena_dsp service call is
used.
If this service call is to be issued from task context, use unl_cpu; if issued from non-task context, use iunl_cpu.
[
[
[
[
E
E
x
x
a
a
m
m
p
p
l
l
e
e
p
p
r
r
o
o
g
g
r
r
a
a
m
m
s
s
t
t
a
a
t
t
e
e
m
m
e
e
n
n
t
t
]
]
]
]
<<Example statement in C language>>
#include <itron.h>
#include <kernel.h>
#include “kernel_id.h”
void task()
{
:
unl_cpu();
:
}
<<Example statement in assembly language>>
.include
mr100.inc
.GLB
task
task:
:
unl_cpu
: