diff --git a/examples/crash.rs b/examples/crash.rs index ab2d47b..8357806 100644 --- a/examples/crash.rs +++ b/examples/crash.rs @@ -82,8 +82,10 @@ use panic_halt as _; use core::ptr; +use core::fmt::Write; -use cortex_m_rt::entry; +use cortex_m_rt::{entry, exception, ExceptionFrame}; +use cortex_m_semihosting::hio; #[entry] fn main() -> ! { @@ -94,3 +96,12 @@ fn main() -> ! { loop {} } + +#[exception] +fn HardFault(ef: &ExceptionFrame) -> ! { + if let Ok(mut hstdout) = hio::hstdout() { + writeln!(hstdout, "{:#?}", ef).ok(); + } + + loop {} +}