|Non-Confidential||PDF version||ARM DUI0471M|
|Home > What is Semihosting? > angel_SWIreason_EnterSVC (0x17)|
Sets the processor to Supervisor mode and disables all interrupts by setting both interrupt mask bits in the new
With a debug hardware unit, such as ARM RVI™ debug unit or ARM DSTREAM™ debug and trace unit:
User stack pointer,
R13_USR, is copied to the
Supervisor mode stack pointer,
the I and F bits in the current
set, which disables normal and fast interrupts.
R1 is not used. The
specify User or Supervisor mode.
R0 contains the address of a function
to be called to return to User mode. The function has the following
EnterSVC is called in User mode, this
routine returns the caller to User mode and restores the interrupt
flags. Otherwise, the action of this routine is undefined.
If entered in User mode, the Supervisor mode stack is lost
as a result of copying the user stack pointer. The return to User
R13_SVC to the Supervisor mode
stack value, but this stack must not be used by applications.
After executing the SVC, the current link register is
R14_USR. If the value of
required after the call, it must be pushed onto the stack before
the call and popped afterwards, as for a