Files
drone_core
drone_cortexm
drone_ctypes
drone_nrf_map
drone_nrf_map_periph_uarte
drone_nrf_map_pieces
drone_nrf_map_pieces_1
drone_nrf_map_pieces_10
drone_nrf_map_pieces_11
drone_nrf_map_pieces_12
drone_nrf_map_pieces_2
drone_nrf_map_pieces_3
drone_nrf_map_pieces_4
drone_nrf_map_pieces_5
drone_nrf_map_pieces_6
drone_nrf_map_pieces_7
drone_nrf_map_pieces_8
drone_nrf_map_pieces_9
futures
futures_channel
futures_core
futures_io
futures_sink
futures_task
futures_util
pin_project_lite
pin_utils
proc_macro_nested
typenum
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use crate::{eprintln, log};
use core::{alloc::Layout, panic::PanicInfo};

extern "C" {
    fn drone_self_reset() -> !;
}

#[panic_handler]
fn begin_panic(pi: &PanicInfo<'_>) -> ! {
    eprintln!("{}", pi);
    abort()
}

#[lang = "oom"]
fn oom(layout: Layout) -> ! {
    eprintln!("Couldn't allocate memory of size {}. Aborting!", layout.size());
    abort()
}

fn abort() -> ! {
    log::flush();
    unsafe { drone_self_reset() }
}