diff --git a/src/runtime/src/main.rs b/src/runtime/src/main.rs index da93f3f..1a30357 100644 --- a/src/runtime/src/main.rs +++ b/src/runtime/src/main.rs @@ -42,6 +42,13 @@ mod analyzer; mod irq; mod i2c; +static mut SEEN_ASYNC_ERRORS: u8 = 0; + +pub unsafe fn get_async_errors() -> u8 { + let errors = SEEN_ASYNC_ERRORS; + SEEN_ASYNC_ERRORS = 0; + errors +} fn wait_for_async_rtio_error() -> nb::Result<(), Void> { unsafe { @@ -70,6 +77,7 @@ async fn report_async_rtio_errors() { error!("RTIO sequence error involving channel {}", pl::csr::rtio_core::sequence_error_channel_read()); } + SEEN_ASYNC_ERRORS = errors; pl::csr::rtio_core::async_error_write(errors); } }