From 7102bd4c048d96f65f79f32c1f0b1c59e1a32a51 Mon Sep 17 00:00:00 2001 From: Hugues de Valon Date: Fri, 2 Oct 2020 17:12:43 +0100 Subject: Add some Armv8-M assembly routines Adds access to MSP_NS and the BXNS instruction. Also adds __dsb which was missing. Signed-off-by: Hugues de Valon --- asm/inline.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'asm/inline.rs') diff --git a/asm/inline.rs b/asm/inline.rs index 3fbba92..9a0c66e 100644 --- a/asm/inline.rs +++ b/asm/inline.rs @@ -308,6 +308,23 @@ mod v8m { asm!("ttat {target}, {target}", target = inout(reg) target); target } + + #[inline(always)] + pub unsafe fn __msp_ns_r() -> u32 { + let r; + asm!("mrs {}, MSP_NS", out(reg) r); + r + } + + #[inline(always)] + pub unsafe fn __msp_ns_w(val: u32) { + asm!("msr MSP_NS, {}", in(reg) val); + } + + #[inline(always)] + pub unsafe fn __bxns(val: u32) { + asm!("BXNS {}", in(reg) val); + } } #[cfg(armv8m_main)] -- cgit v1.2.3