use crate::hal::concurrency;
use crate::hal::concurrency::thread;
use crate::deviceconsts::clock;
use crate::hal::generic::cpu::ClockControl;
#[cfg(feature="alloc_ftr")]
use crate::alloc;
extern {
fn __oxide_main() -> u8;
}
#[no_mangle]
fn _oxide_boot() {
unsafe {
#[cfg(feature="alloc_ftr")]
alloc::initialise();
concurrency::internal::initialise();
#[cfg(feature="atmega4809")]
crate::hal::atmega4809::cpu::clock().clk_per_prescaler(clock::MASTER_CLOCK_PRESCALER);
let _jh = thread::spawn_threadunsafe(||{
__oxide_main()
});
concurrency::internal::run_scheduler();
}
}