extern task

This commit is contained in:
Per Lindgren 2020-10-24 19:38:49 +02:00
parent d11b2ddd35
commit 96cd625223
7 changed files with 125 additions and 31 deletions

View file

@ -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 _;
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)*
}
));
#(#stmts)*
}
));
}
}
(mod_app, root, user_tasks)

View file

@ -99,21 +99,23 @@ pub fn codegen(
root.push(struct_);
}
let context = &task.context;
let attrs = &task.attrs;
let cfgs = &task.cfgs;
let stmts = &task.stmts;
let locals_pat = locals_pat.iter();
user_tasks.push(quote!(
#(#attrs)*
#(#cfgs)*
#[allow(non_snake_case)]
fn #name(#(#locals_pat,)* #context: #name::Context #(,#inputs)*) {
use rtic::Mutex as _;
if !&task.is_extern {
let context = &task.context;
let attrs = &task.attrs;
let cfgs = &task.cfgs;
let stmts = &task.stmts;
let locals_pat = locals_pat.iter();
user_tasks.push(quote!(
#(#attrs)*
#(#cfgs)*
#[allow(non_snake_case)]
fn #name(#(#locals_pat,)* #context: #name::Context #(,#inputs)*) {
use rtic::Mutex as _;
#(#stmts)*
}
));
#(#stmts)*
}
));
}
root.push(module::codegen(
Context::SoftwareTask(name),