From 323b847bf692a0054647536a6495f20373f6d9c7 Mon Sep 17 00:00:00 2001 From: Emil Fresk Date: Wed, 29 Mar 2023 20:43:27 +0200 Subject: Adding a limit that async HALs can read and have as max prio --- rtic-macros/src/analyze.rs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'rtic-macros/src/analyze.rs') diff --git a/rtic-macros/src/analyze.rs b/rtic-macros/src/analyze.rs index 65774f6..2227308 100644 --- a/rtic-macros/src/analyze.rs +++ b/rtic-macros/src/analyze.rs @@ -11,6 +11,7 @@ use syn::Ident; pub struct Analysis { parent: analyze::Analysis, pub interrupts: BTreeMap, + pub max_async_prio: Option, } impl ops::Deref for Analysis { @@ -42,8 +43,16 @@ pub fn app(analysis: analyze::Analysis, app: &App) -> Analysis { .map(|p| (p, available_interrupt.pop().expect("UNREACHABLE"))) .collect(); + let max_async_prio = app + .hardware_tasks + .iter() + .map(|(_, task)| task.args.priority) + .min() + .map(|v| v - 1); // One less than the smallest HW task + Analysis { parent: analysis, interrupts, + max_async_prio, } } -- cgit v1.2.3