aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/shared_resources.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2022-09-21 21:33:31 +0200
committerGravatar Emil Fresk <emil.fresk@gmail.com> 2022-09-24 14:07:33 +0200
commit1341cc5bbe912d3cafcdd87f30ff75627829f0f5 (patch)
treed0a9569a2cf34cb59c0932709d219ecfac56cfad /macros/src/codegen/shared_resources.rs
parentb1d499a74416ce03bde2d88b6944f64a5cd55f26 (diff)
downloadrtic-1341cc5bbe912d3cafcdd87f30ff75627829f0f5.tar.gz
rtic-1341cc5bbe912d3cafcdd87f30ff75627829f0f5.tar.zst
rtic-1341cc5bbe912d3cafcdd87f30ff75627829f0f5.zip
Broke out async dispatchers into their own place
Diffstat (limited to 'macros/src/codegen/shared_resources.rs')
-rw-r--r--macros/src/codegen/shared_resources.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/macros/src/codegen/shared_resources.rs b/macros/src/codegen/shared_resources.rs
index 4a750070..f964f467 100644
--- a/macros/src/codegen/shared_resources.rs
+++ b/macros/src/codegen/shared_resources.rs
@@ -112,7 +112,11 @@ pub fn codegen(
};
// Computing mapping of used interrupts to masks
- let interrupt_ids = analysis.interrupts.iter().map(|(p, (id, _))| (p, id));
+ let interrupt_ids = analysis
+ .interrupts_normal
+ .iter()
+ .map(|(p, (id, _))| (p, id))
+ .chain(analysis.interrupts_async.iter().map(|(p, (id, _))| (p, id)));
let mut prio_to_masks = HashMap::new();
let device = &extra.device;
@@ -147,7 +151,7 @@ pub fn codegen(
None
}
})) {
- let v = prio_to_masks.entry(priority - 1).or_insert(Vec::new());
+ let v: &mut Vec<_> = prio_to_masks.entry(priority - 1).or_default();
v.push(quote!(#device::Interrupt::#name as u32));
mask_ids.push(quote!(#device::Interrupt::#name as u32));
}