Skip to main content

cortex_m/register/
psplim.rs

1//! Process Stack Pointer Limit Register
2
3use core::arch::asm;
4use cortex_m_macros::asm_cfg;
5
6/// Reads the CPU register
7#[inline]
8#[asm_cfg(armv8m_main)]
9pub fn read() -> u32 {
10    let r;
11    unsafe { asm!("mrs {}, PSPLIM", out(reg) r, options(nomem, nostack, preserves_flags)) };
12    r
13}
14
15/// Writes `bits` to the CPU register
16#[inline]
17#[asm_cfg(armv8m_main)]
18pub unsafe fn write(bits: u32) {
19    unsafe { asm!("msr PSPLIM, {}", in(reg) bits, options(nomem, nostack, preserves_flags)) };
20}