CMSIS-Core (Cortex-A): Stack Pointer (SP/R13)

| CMSIS-Core (Cortex-A) Version 1.2.1 CMSIS-Core support for Cortex-A processor-based devices

- Main Page
- Usage and Description
- Reference

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
Stack Pointer (SP/R13)
Core Register Access

The processor uses SP as a pointer to the active stack. More...

## Functions

__STATIC_INLINE __ASM void | __set_SP (uint32_t stack)
| Set Stack Pointer. More...
__STATIC_INLINE __ASM void | __set_SP_usr (uint32_t topOfProcStack)
| Set USR/SYS Stack Pointer. More...

## Description

The Stack Pointer is banked per processor mode. Accessing the active stack pointer actually returns/modifies the stack pointer of the current processor execution mode.

Mode | Actual SP
--- | ---
User/System | SP_usr
Hypervisor | SP_hyp
Supervisor | SP_svc
Abort | SP_abt
Undefined | SP_und
Monitor | SP_mon
IRQ | SP_irq
FIQ | SP_fiq

Consider __set_SP and __set_SP_usr to access this register.

## Function Documentation

__STATIC_INLINE __ASM void __set_SP | ( | uint32_t | stack | ) |

Parameters

  [in] | stack | Stack Pointer value to set

This function assigns the given value to the current stack pointer.

__STATIC_INLINE __ASM void __set_SP_usr | ( | uint32_t | topOfProcStack | ) |

Parameters

  [in] | topOfProcStack | USR/SYS Stack Pointer value to set

This function assigns the given value to the User/System Stack Pointer (SP_usr).