cortex-m-rtic 1.1.2

Real-Time Interrupt-driven Concurrency (RTIC): a concurrency framework for building real-time systems
Documentation
//! v6m-interrupt-not-enough.rs_no (not run atm)
//!
//! Expected behavior:
//! should pass
//! > cargo build --example m0_perf_err  --target thumbv7m-none-eabi --release
//!
//! should fail
//! > cargo build --example m0_perf_err  --target thumbv6m-none-eabi --release
//! Compiling cortex-m-rtic v1.0.0 (/home/pln/rust/rtic/cortex-m-rtic)
//! error[E0308]: mismatched types
//! --> examples/m0_perf_err.rs:25:1
//!  |
//! 25 | #[rtic::app(device = lm3s6965)]
//!  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an array with a fixed size of 4 elements, found one with 5 elements
//!  |
//!  = note: this error originates in the attribute macro `rtic::app` (in Nightly builds, run with -Z macro-backtrace for more info)

#![deny(unsafe_code)]
#![deny(warnings)]
#![no_main]
#![no_std]

use panic_semihosting as _;

#[rtic::app(device = lm3s6965)]
mod app {

    use cortex_m_semihosting::debug;

    #[shared]
    struct Shared {}

    #[local]
    struct Local {}

    #[init]
    fn init(_: init::Context) -> (Shared, Local, init::Monotonics) {
        (Shared {}, Local {}, init::Monotonics())
    }

    #[inline(never)]
    #[idle]
    fn idle(_cx: idle::Context) -> ! {
        debug::exit(debug::EXIT_SUCCESS); // Exit QEMU simulator

        loop {
            cortex_m::asm::nop();
        }
    }

    // priority to high for v6m
    #[task(binds = GPIOA, priority = 5)]
    fn t0(_cx: t0::Context) {}
}