#![cfg_attr(not(test), no_main)] #![cfg_attr(not(test), no_std)] use cortex_m_rt::entry; use log::info; use stm32f4xx_hal::pac::{CorePeripherals, Peripherals}; mod device; mod laser_diode; mod thermostat; use device::{boot::bootup, log_setup, sys_timer}; use crate::thermostat::max1968; // If RTT is used, print panic info through RTT #[cfg(all(feature = "RTT", not(test)))] use {core::panic::PanicInfo, rtt_target::rprintln}; #[cfg(all(feature = "RTT", not(test)))] #[panic_handler] fn panic(info: &PanicInfo) -> ! { rprintln!("{}", info); loop {} } // Otherwise use panic halt #[cfg(all(not(feature = "RTT"), not(test)))] use panic_halt as _; #[cfg(not(test))] #[entry] fn main() -> ! { log_setup::init_log(); info!("Kirdy init"); let core_perif = CorePeripherals::take().unwrap(); let perif = Peripherals::take().unwrap(); let (mut wd, mut tec_driver, mut laser,) = bootup(core_perif, perif); loop { wd.feed(); info!("looping"); sys_timer::sleep(10); } }