Privileged Instructions
The following MicroBlaze instructions are privileged:
•
,
GET
GETD,PUT,PUTD
•
,
WIC
WDC
•
MTS
•
,
MSRCLR
MSRSET
•
BRK
•
,
,
RTID
RTBD
•
(except when jumping to physical address
BRKI
C_BASE_VECTORS
,
•
SLEEP
HIBERNATE
Attempted use of these instructions when running in user mode causes a privileged
instruction exception.
When setting the parameter
PUT, and PUTD are not considered privileged, and can be executed when running in user
mode. It is strongly discouraged to do this, unless absolutely necessary for performance
reasons, since it allows application programs to interfere with each other.
There are six ways to leave user mode and virtual mode:
1. Hardware generated reset (including debug reset)
2. Hardware exception
3. Non-maskable break or hardware break
4. Interrupt
5. Executing "
6. Executing the software break instructions "
C_BASE_VECTORS
In all of these cases, except hardware generated reset, the user mode and virtual mode
status is saved in the MSR UMS and VMS bits.
Application (user-mode) programs transfer control to system-service routines (privileged
mode programs) using the
C_BASE_VECTORS
The exception handler determines which system-service routine to call and whether the
calling application has permission to call that service. If permission is granted, the
MicroBlaze Processor Reference Guide
UG984 (v2016.2) June 8, 2016
UG984 (v2016.1) April 6, 2016
(except when explicitly allowed)
(except when only the C bit is affected)
RTED
+ 0x18)
,
SUSPEND
C_MMU_PRIVILEGED_INSTR
BRALID Re,C_BASE_VECTORS
+ 0x8 or
C_BASE_VECTORS
or
BRALID
+ 0x8. Executing this instruction causes a system-call exception to occur.
www.xilinx.com
Chapter 2: MicroBlaze Architecture
C_BASE_VECTORS
to 1, the instructions GET, GETD,
+
" to perform a user vector exception
0x8
" jumping to physical address
BRKI
+ 0x18
instruction, jumping to physical address
BRKI
+ 0x8 or
50
Send Feedback
Need help?
Do you have a question about the MicroBlaze and is the answer not in the manual?
Questions and answers