diff options
author | 2020-10-29 18:34:35 +0000 | |
---|---|---|
committer | 2020-10-29 18:34:35 +0000 | |
commit | ad50b54530b7068dde3227dfb72f2a641171af61 (patch) | |
tree | e1190b395650334f834c218ff33583b783f81054 /macros/src/codegen/hardware_tasks.rs | |
parent | d11b2ddd3559b29480b9bbcf9d5b7836de190f77 (diff) | |
parent | 96cd625223404a3b32a62384055ccd4765f92312 (diff) | |
download | rtic-ad50b54530b7068dde3227dfb72f2a641171af61.tar.gz rtic-ad50b54530b7068dde3227dfb72f2a641171af61.tar.zst rtic-ad50b54530b7068dde3227dfb72f2a641171af61.zip |
Merge #402
402: Extern task r=AfoHT a=perlindgren
Allows hardware and software task to be externally declared.
CI test, don't merge yet (squash needed).
Co-authored-by: Per Lindgren <per.lindgren@ltu.se>
Diffstat (limited to 'macros/src/codegen/hardware_tasks.rs')
-rw-r--r-- | macros/src/codegen/hardware_tasks.rs | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/macros/src/codegen/hardware_tasks.rs b/macros/src/codegen/hardware_tasks.rs index e5a8deb9..c9d0297e 100644 --- a/macros/src/codegen/hardware_tasks.rs +++ b/macros/src/codegen/hardware_tasks.rs @@ -95,19 +95,21 @@ pub fn codegen( locals_pat = Some(pat); } - let attrs = &task.attrs; - let context = &task.context; - let stmts = &task.stmts; - let locals_pat = locals_pat.iter(); - user_tasks.push(quote!( - #(#attrs)* - #[allow(non_snake_case)] - fn #name(#(#locals_pat,)* #context: #name::Context) { - use rtic::Mutex as _; - - #(#stmts)* - } - )); + if !&task.is_extern { + let attrs = &task.attrs; + let context = &task.context; + let stmts = &task.stmts; + let locals_pat = locals_pat.iter(); + user_tasks.push(quote!( + #(#attrs)* + #[allow(non_snake_case)] + fn #name(#(#locals_pat,)* #context: #name::Context) { + use rtic::Mutex as _; + + #(#stmts)* + } + )); + } } (mod_app, root, user_tasks) |