aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/pre_init.rs
diff options
context:
space:
mode:
authorGravatar Jorge Aparicio <jorge@japaric.io> 2019-06-20 06:19:59 +0200
committerGravatar Jorge Aparicio <jorge@japaric.io> 2019-06-20 06:19:59 +0200
commit4e51bb68b976c6bb6a9a989dc560d2a8123a84ca (patch)
tree5c14f21f904c15034d477c7e4400e01d212a9f2a /macros/src/codegen/pre_init.rs
parentb150ab29e25637e41ba5de81f6cbbdfe24834a3f (diff)
downloadrtic-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.rs14
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
}