#![no_std]
#![no_main]
const FRONTEND: board::logging::Frontend = board::logging::Frontend::Log;
const BACKEND: board::logging::Backend = board::logging::BACKEND;
const MAKE_LOG_INTERVAL_MS: u32 = board::PIT_FREQUENCY / 1_000 * 250;
use imxrt_hal as hal;
#[imxrt_rt::entry]
fn main() -> ! {
let (
board::Common {
pit: (_, _, mut make_log, _),
usb1,
usbnc1,
usbphy1,
mut dma,
..
},
board::Specifics { led, console, .. },
) = board::new();
make_log.set_load_timer_value(MAKE_LOG_INTERVAL_MS);
make_log.set_interrupt_enable(false);
make_log.enable();
let usbd = hal::usbd::Instances {
usb: usb1,
usbnc: usbnc1,
usbphy: usbphy1,
};
let dma_a = dma[board::BOARD_DMA_A_INDEX].take().unwrap();
let mut poller = board::logging::init(FRONTEND, BACKEND, console, dma_a, usbd);
let mut counter = 0;
loop {
poller.poll();
if make_log.is_elapsed() {
led.toggle();
while make_log.is_elapsed() {
make_log.clear_elapsed();
}
log::info!("Hello from the log framework over {BACKEND:?}! The count is {counter}");
defmt::println!(
"Hello from defmt over {}! The count is {=u32}",
BACKEND,
counter
);
counter += 1;
}
}
}