diff options
author | 2019-06-20 06:19:59 +0200 | |
---|---|---|
committer | 2019-06-20 06:19:59 +0200 | |
commit | 4e51bb68b976c6bb6a9a989dc560d2a8123a84ca (patch) | |
tree | 5c14f21f904c15034d477c7e4400e01d212a9f2a /macros/src/codegen/pre_init.rs | |
parent | b150ab29e25637e41ba5de81f6cbbdfe24834a3f (diff) | |
download | rtic-4e51bb68b976c6bb6a9a989dc560d2a8123a84ca.tar.gz rtic-4e51bb68b976c6bb6a9a989dc560d2a8123a84ca.tar.zst rtic-4e51bb68b976c6bb6a9a989dc560d2a8123a84ca.zip |
RFC #207
Diffstat (limited to 'macros/src/codegen/pre_init.rs')
-rw-r--r-- | macros/src/codegen/pre_init.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/macros/src/codegen/pre_init.rs b/macros/src/codegen/pre_init.rs index 19fc6461..948dae54 100644 --- a/macros/src/codegen/pre_init.rs +++ b/macros/src/codegen/pre_init.rs @@ -1,6 +1,6 @@ use proc_macro2::TokenStream as TokenStream2; use quote::quote; -use rtfm_syntax::ast::{App, HardwareTaskKind}; +use rtfm_syntax::ast::App; use crate::{analyze::Analysis, check::Extra, codegen::util}; @@ -52,9 +52,9 @@ pub fn codegen( .get(&core) .iter() .flat_map(|interrupts| *interrupts) - .chain(app.hardware_tasks.iter().flat_map(|(name, task)| { - if task.kind == HardwareTaskKind::Interrupt { - Some((&task.args.priority, task.args.binds(name))) + .chain(app.hardware_tasks.values().flat_map(|task| { + if !util::is_exception(&task.args.binds) { + Some((&task.args.priority, &task.args.binds)) } else { // we do exceptions in another pass None @@ -102,9 +102,9 @@ pub fn codegen( } // set exception priorities - for (name, priority) in app.hardware_tasks.iter().filter_map(|(name, task)| { - if task.kind == HardwareTaskKind::Exception { - Some((task.args.binds(name), task.args.priority)) + for (name, priority) in app.hardware_tasks.values().filter_map(|task| { + if util::is_exception(&task.args.binds) { + Some((&task.args.binds, task.args.priority)) } else { None } |