mirror of
https://github.com/rtic-rs/rtic.git
synced 2025-12-16 12:55:23 +01:00
check task priority at compile time
before we were checking the priority at runtime. The compile time error message when the priority is too high is kind of awful though.
This commit is contained in:
parent
8da925647e
commit
aa7eec0299
5 changed files with 55 additions and 6 deletions
22
tests/cfail/priority-too-high.rs
Normal file
22
tests/cfail/priority-too-high.rs
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#![no_main]
|
||||
#![no_std]
|
||||
|
||||
extern crate lm3s6965;
|
||||
extern crate panic_halt;
|
||||
extern crate rtfm;
|
||||
|
||||
use rtfm::app;
|
||||
|
||||
#[app(device = lm3s6965)] //~ error evaluation of constant value failed
|
||||
const APP: () = {
|
||||
#[init]
|
||||
fn init() {}
|
||||
|
||||
// OK, this is the maximum priority supported by the device
|
||||
#[interrupt(priority = 8)]
|
||||
fn UART0() {}
|
||||
|
||||
// this value is too high!
|
||||
#[interrupt(priority = 9)]
|
||||
fn UART1() {}
|
||||
};
|
||||
22
tests/cfail/priority-too-low.rs
Normal file
22
tests/cfail/priority-too-low.rs
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#![no_main]
|
||||
#![no_std]
|
||||
|
||||
extern crate lm3s6965;
|
||||
extern crate panic_halt;
|
||||
extern crate rtfm;
|
||||
|
||||
use rtfm::app;
|
||||
|
||||
#[app(device = lm3s6965)]
|
||||
const APP: () = {
|
||||
#[init]
|
||||
fn init() {}
|
||||
|
||||
// OK, this is the minimum priority that tasks can have
|
||||
#[interrupt(priority = 1)]
|
||||
fn UART0() {}
|
||||
|
||||
// this value is too low!
|
||||
#[interrupt(priority = 0)] //~ error this literal must be in the range 1...255
|
||||
fn UART1() {}
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue