generated from sirlilpanda/kicad-project-template-actionless
22 lines
770 B
Zig
22 lines
770 B
Zig
const sys = @import("sys");
|
|
const log = @import("log");
|
|
|
|
/// panic handler for esp-idf
|
|
pub fn panic(msg: []const u8, stack_trace: ?*@import("std").builtin.StackTrace, _: ?usize) noreturn {
|
|
sys.esp_log_write(log.default_level, "PANIC", "[%lu ms] PANIC: %.*s\n", sys.esp_log_timestamp(), msg.len, msg.ptr);
|
|
|
|
// try print stack trace if available
|
|
if (stack_trace) |st| {
|
|
var i: usize = st.index;
|
|
if (i > st.instruction_addresses.len) i = st.instruction_addresses.len;
|
|
var idx: usize = 0;
|
|
while (idx < i) : (idx += 1) {
|
|
sys.esp_log_write(log.default_level, "PANIC", " #%u: 0x%08lx\n", idx, st.instruction_addresses[idx]);
|
|
}
|
|
}
|
|
|
|
while (true) {
|
|
asm volatile ("" ::: .{ .memory = true });
|
|
}
|
|
}
|