diff options
author | 2022-09-21 21:33:31 +0200 | |
---|---|---|
committer | 2022-09-24 14:07:33 +0200 | |
commit | 1341cc5bbe912d3cafcdd87f30ff75627829f0f5 (patch) | |
tree | d0a9569a2cf34cb59c0932709d219ecfac56cfad /macros/src/codegen/pre_init.rs | |
parent | b1d499a74416ce03bde2d88b6944f64a5cd55f26 (diff) | |
download | rtic-1341cc5bbe912d3cafcdd87f30ff75627829f0f5.tar.gz rtic-1341cc5bbe912d3cafcdd87f30ff75627829f0f5.tar.zst rtic-1341cc5bbe912d3cafcdd87f30ff75627829f0f5.zip |
Broke out async dispatchers into their own place
Diffstat (limited to 'macros/src/codegen/pre_init.rs')
-rw-r--r-- | macros/src/codegen/pre_init.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/macros/src/codegen/pre_init.rs b/macros/src/codegen/pre_init.rs index 3d541a47..5708c0f1 100644 --- a/macros/src/codegen/pre_init.rs +++ b/macros/src/codegen/pre_init.rs @@ -15,6 +15,10 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream // Populate the FreeQueue for (name, task) in &app.software_tasks { + if task.is_async { + continue; + } + let cap = task.args.capacity; let fq_ident = util::fq_ident(name); @@ -38,7 +42,11 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream stmts.push(quote!(let _ = #rt_err::#interrupt::#name;)); } - 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))); // Unmask interrupts and set their priorities for (&priority, name) in interrupt_ids.chain(app.hardware_tasks.values().filter_map(|task| { |