move out most of text
see https://github.com/rust-embedded/book/pull/20
This commit is contained in:
@@ -1,44 +1,28 @@
|
||||
//! Changing the panic handler
|
||||
//! Changing the panicking behavior
|
||||
//!
|
||||
//! The easiest way to change the panic handler is to use a different [panic handler crate][0].
|
||||
//! The easiest way to change the panicking behavior 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 panic handlers:
|
||||
|
||||
// Pick one of these two panic handlers:
|
||||
// `panic!` halts execution; the panic message is ignored
|
||||
extern crate panic_halt;
|
||||
|
||||
// Reports panic messages to the host stderr using semihosting
|
||||
extern crate panic_semihosting;
|
||||
// NOTE to use this you need to uncomment the `panic-semihosting` dependency in Cargo.toml
|
||||
// extern crate panic_semihosting;
|
||||
|
||||
// Logs panic messages using the ITM (Instrumentation Trace Macrocell)
|
||||
// NOTE to use this you need to uncomment the `panic-itm` dependency in Cargo.toml
|
||||
// extern crate panic_itm;
|
||||
|
||||
use rt::ExceptionFrame;
|
||||
|
||||
entry!(main);
|
||||
use cortex_m_rt::entry;
|
||||
|
||||
#[entry]
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user