aboutsummaryrefslogtreecommitdiff
path: root/macros/src/analyze.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/analyze.rs')
-rw-r--r--macros/src/analyze.rs41
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 {