aboutsummaryrefslogtreecommitdiff
path: root/cortex-m-rt
diff options
context:
space:
mode:
authorGravatar Ulf Lilleengen <ulf.lilleengen@gmail.com> 2021-02-25 15:04:42 +0100
committerGravatar Ulf Lilleengen <ulf.lilleengen@gmail.com> 2021-02-25 15:04:42 +0100
commitd802c58d0fafb45538864c8798fcf71e04de0ad3 (patch)
treef5eec5628f5f002c694337238e061edd3db0e541 /cortex-m-rt
parent02b308cf74bd288d63dd9b7ccda610283df099d2 (diff)
downloadcortex-m-d802c58d0fafb45538864c8798fcf71e04de0ad3.tar.gz
cortex-m-d802c58d0fafb45538864c8798fcf71e04de0ad3.tar.zst
cortex-m-d802c58d0fafb45538864c8798fcf71e04de0ad3.zip
Use volatile read for ICSR register
This prevents the compiler from optimizing the read
Diffstat (limited to 'cortex-m-rt')
-rw-r--r--cortex-m-rt/macros/src/lib.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/cortex-m-rt/macros/src/lib.rs b/cortex-m-rt/macros/src/lib.rs
index fe0264f..7877348 100644
--- a/cortex-m-rt/macros/src/lib.rs
+++ b/cortex-m-rt/macros/src/lib.rs
@@ -227,7 +227,7 @@ pub fn exception(args: TokenStream, input: TokenStream) -> TokenStream {
const SCB_ICSR: *const u32 = 0xE000_ED04 as *const u32;
- let irqn = unsafe { core::ptr::read(SCB_ICSR) as u8 as i16 - 16 };
+ let irqn = unsafe { core::ptr::read_volatile(SCB_ICSR) as u8 as i16 - 16 };
#ident(irqn)
}