diff options
Diffstat (limited to 'cortex-m-rt/examples/override-exception.rs')
-rw-r--r-- | cortex-m-rt/examples/override-exception.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/cortex-m-rt/examples/override-exception.rs b/cortex-m-rt/examples/override-exception.rs new file mode 100644 index 0000000..3190b77 --- /dev/null +++ b/cortex-m-rt/examples/override-exception.rs @@ -0,0 +1,29 @@ +//! How to override the hard fault exception handler and the default exception handler + +#![deny(warnings)] +#![no_main] +#![no_std] + +extern crate cortex_m; +extern crate cortex_m_rt as rt; +extern crate panic_halt; + +use cortex_m::asm; +use rt::{entry, exception, ExceptionFrame}; + +#[entry] +fn main() -> ! { + loop {} +} + +#[exception] +unsafe fn DefaultHandler(_irqn: i16) { + asm::bkpt(); +} + +#[exception] +unsafe fn HardFault(_ef: &ExceptionFrame) -> ! { + asm::bkpt(); + + loop {} +} |