protoflight 0.1.5

Protoflight flight controller.
#![doc = include_str!("../README.md")]
#![cfg_attr(all(not(test), not(feature = "std")), no_std)]
#![cfg_attr(not(feature = "std"), no_main)]
#![deny(clippy::unwrap_used)]
#![deny(clippy::expect_used)]
#![deny(clippy::panic)]
#![deny(unused_must_use)]
#![warn(unused_results)]
#![warn(clippy::pedantic)]
#![warn(clippy::doc_paragraphs_missing_punctuation)]

#[macro_use]
mod macros;

mod autopilot;
mod barometer_sensors;
mod battery_sensors;
mod boards;
mod config;
mod display;
mod drivers;
mod flight;
mod gps;
mod i2c_bus;
mod magnetometer_sensors;
mod multiwii_serial_protocol;
mod non_volatile_storage;
mod optical_flow_sensors;
mod osd;
mod rangefinder_sensors;
mod tasks;
mod vtx;

// Embedded targets use RTT probe linkages
#[cfg(feature = "rtt-debug")]
use defmt_rtt as _;

#[cfg(feature = "rtt-debug")]
use panic_probe as _;

// =========================================================================
// MANDATORY EMBEDDED PANIC HANDLER
// =========================================================================

//#[cfg(any(feature = "rp2040", feature = "rp235xa", feature = "rp235xb", feature = "stm32f405", feature = "stm32", feature = "esp32"))]
//#[cfg(any(feature = "rp2040", feature = "rp235xa", feature = "rp235xb", feature = "esp32"))]
/*#[cfg(not(feature = "host"))]
#[panic_handler]
fn panic(_info: &core::panic::PanicInfo) -> ! {
    loop {
        core::hint::spin_loop();
    }
}*/

#[embassy_executor::main]
async fn main(spawner: embassy_executor::Spawner) {
    if let Err(e) = crate::tasks::init(spawner).await {
        // {:?} uses the derived Debug name automatically
        _ = e;
        //defmt::error!("Init error: {}", e.as_str());
        #[allow(clippy::panic)]
        {
            panic!("Initialization failed");
        }
    }
}