1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
//! Changing the panic handler //! //! The easiest way to change the panic handler is to use a different [panic handler crate][0]. //! //! [0]: https://crates.io/keywords/panic-impl //! //! --- //! //! ``` //! //! #![no_main] //! #![no_std] //! //! #[macro_use] //! extern crate cortex_m_rt as rt; //! //! // Pick one of these two panic handlers: //! //! // Reports panic messages to the host stderr using semihosting //! extern crate panic_semihosting; //! //! // Logs panic messages using the ITM (Instrumentation Trace Macrocell) //! // extern crate panic_itm; //! //! use rt::ExceptionFrame; //! //! entry!(main); //! //! fn main() -> ! { //! panic!("Oops") //! } //! //! // define the hard fault handler //! exception!(HardFault, hard_fault); //! //! fn hard_fault(ef: &ExceptionFrame) -> ! { //! panic!("HardFault at {:#?}", ef); //! } //! //! // define the default exception handler //! exception!(*, default_handler); //! //! fn default_handler(irqn: i16) { //! panic!("Unhandled exception (IRQn = {})", irqn); //! } //! ``` // Auto-generated. Do not modify.