diff options
Diffstat (limited to 'macros/src/analyze.rs')
-rw-r--r-- | macros/src/analyze.rs | 41 |
1 files changed, 15 insertions, 26 deletions
diff --git a/macros/src/analyze.rs b/macros/src/analyze.rs index af6811fa..38018c8c 100644 --- a/macros/src/analyze.rs +++ b/macros/src/analyze.rs @@ -4,14 +4,14 @@ use std::collections::{BTreeMap, BTreeSet}; use rtic_syntax::{ analyze::{self, Priority}, ast::App, - Core, P, + P, }; use syn::Ident; /// Extend the upstream `Analysis` struct with our field pub struct Analysis { parent: P<analyze::Analysis>, - pub interrupts: BTreeMap<Core, BTreeMap<Priority, Ident>>, + pub interrupts: BTreeMap<Priority, Ident>, } impl ops::Deref for Analysis { @@ -25,31 +25,20 @@ impl ops::Deref for Analysis { // Assign an `extern` interrupt to each priority level pub fn app(analysis: P<analyze::Analysis>, app: &App) -> P<Analysis> { let mut interrupts = BTreeMap::new(); - for core in 0..app.args.cores { - let priorities = app - .software_tasks - .values() - .filter_map(|task| { - if task.args.core == core { - Some(task.args.priority) - } else { - None - } - }) - .chain(analysis.timer_queues.get(&core).map(|tq| tq.priority)) - .collect::<BTreeSet<_>>(); + let priorities = app + .software_tasks + .values() + .filter_map(|task| Some(task.args.priority)) + .chain(analysis.timer_queues.first().map(|tq| tq.priority)) + .collect::<BTreeSet<_>>(); - if !priorities.is_empty() { - interrupts.insert( - core, - priorities - .iter() - .cloned() - .rev() - .zip(app.extern_interrupts[&core].keys().cloned()) - .collect(), - ); - } + if !priorities.is_empty() { + interrupts = priorities + .iter() + .cloned() + .rev() + .zip(app.extern_interrupts.keys().cloned()) + .collect(); } P::new(Analysis { |