diff options
author | 2023-01-25 20:34:49 +0000 | |
---|---|---|
committer | 2023-01-25 20:34:49 +0000 | |
commit | d43c2b64cc726ff093d418d45d89226dd76e4e55 (patch) | |
tree | b525e1eb26b158b2761c17d2ea7af3fe0cf4a79d /macros/src/codegen/shared_resources_struct.rs | |
parent | a601c6e449e7222dcfe73bc2f2c41c95b99b46d7 (diff) | |
parent | 800904a1054639a090ef92e9b1e7c884ea9863e0 (diff) | |
download | rtic-d43c2b64cc726ff093d418d45d89226dd76e4e55.tar.gz rtic-d43c2b64cc726ff093d418d45d89226dd76e4e55.tar.zst rtic-d43c2b64cc726ff093d418d45d89226dd76e4e55.zip |
Merge #692
692: CFG: Support HW tasks, cleanup for SW tasks r=korken89 a=AfoHT
Fixes #665
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
Diffstat (limited to 'macros/src/codegen/shared_resources_struct.rs')
-rw-r--r-- | macros/src/codegen/shared_resources_struct.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/macros/src/codegen/shared_resources_struct.rs b/macros/src/codegen/shared_resources_struct.rs index 7b6cd20d..df362719 100644 --- a/macros/src/codegen/shared_resources_struct.rs +++ b/macros/src/codegen/shared_resources_struct.rs @@ -15,6 +15,19 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2, Context::SoftwareTask(name) => &app.software_tasks[name].args.shared_resources, }; + let v = Vec::new(); + let task_cfgs = match ctxt { + Context::HardwareTask(t) => { + &app.hardware_tasks[t].cfgs + // ... + } + Context::SoftwareTask(t) => { + &app.software_tasks[t].cfgs + // ... + } + _ => &v, + }; + let mut fields = vec![]; let mut values = vec![]; let mut has_cfgs = false; @@ -118,6 +131,7 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2, #[allow(non_snake_case)] #[allow(non_camel_case_types)] #[doc = #doc] + #(#task_cfgs)* pub struct #ident<#lt> { #(#fields,)* } @@ -129,6 +143,7 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2, Some(quote!(priority: &#lt rtic::export::Priority)) }; let constructor = quote!( + #(#task_cfgs)* impl<#lt> #ident<#lt> { #[doc(hidden)] #[inline(always)] |