48 lines
1.1 KiB
Rust
48 lines
1.1 KiB
Rust
//! 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.
|