Files
OpenSK/third_party/lang-items/src/panic_handler.rs
kaczmarczyck f25cdd6acc Tock V2 port - rebased and updated (#620)
* Changes from #580

* fixes USB cancel panic

* style fixes

* Update src/env/tock/storage.rs

Co-authored-by: Zach Halvorsen <zhalvorsen@google.com>

---------

Co-authored-by: Zach Halvorsen <zhalvorsen@google.com>
2023-05-05 09:55:16 +02:00

26 lines
776 B
Rust

//! Custom panic handler for OpenSK
use crate::util;
#[cfg(feature = "panic_console")]
use core::fmt::Write;
#[cfg(feature = "panic_console")]
use libtock_console::Console;
#[allow(unused_imports)]
use libtock_platform::{ErrorCode, Syscalls};
use libtock_runtime::TockSyscalls;
#[panic_handler]
fn panic_handler(_info: &core::panic::PanicInfo) -> ! {
util::Util::<TockSyscalls>::signal_panic();
#[cfg(feature = "panic_console")]
{
let mut writer = Console::<TockSyscalls>::writer();
writeln!(writer, "{}", _info).ok();
// Exit with a non-zero exit code to indicate failure.
TockSyscalls::exit_terminate(ErrorCode::Fail as u32);
}
#[cfg(not(feature = "panic_console"))]
util::Util::<TockSyscalls>::flash_all_leds();
}