cortex-m-quickstart 0.3.4

A template for building applications for ARM Cortex-M microcontrollers
//! 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)
// NOTE to use this you need to uncomment the `panic-itm` dependency in Cargo.toml
// 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);
}