mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-12-25 03:19:34 +01:00
Rename const_app to mod_app
This commit is contained in:
parent
b4ec6f5eff
commit
96e6350c0d
6 changed files with 52 additions and 64 deletions
|
@ -25,8 +25,8 @@ mod util;
|
||||||
|
|
||||||
// TODO document the syntax here or in `rtic-syntax`
|
// TODO document the syntax here or in `rtic-syntax`
|
||||||
pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
|
pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
|
||||||
let mut const_app = vec![];
|
let mut mod_app = vec![];
|
||||||
let mut const_app_imports = vec![];
|
let mut mod_app_imports = vec![];
|
||||||
let mut mains = vec![];
|
let mut mains = vec![];
|
||||||
let mut root = vec![];
|
let mut root = vec![];
|
||||||
let mut user = vec![];
|
let mut user = vec![];
|
||||||
|
@ -37,21 +37,21 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
|
||||||
|
|
||||||
let pre_init_stmts = pre_init::codegen(&app, analysis, extra);
|
let pre_init_stmts = pre_init::codegen(&app, analysis, extra);
|
||||||
|
|
||||||
let (const_app_init, root_init, user_init, user_init_imports, call_init) =
|
let (mod_app_init, root_init, user_init, user_init_imports, call_init) =
|
||||||
init::codegen(app, analysis, extra);
|
init::codegen(app, analysis, extra);
|
||||||
|
|
||||||
let post_init_stmts = post_init::codegen(&app, analysis);
|
let post_init_stmts = post_init::codegen(&app, analysis);
|
||||||
|
|
||||||
let (const_app_idle, root_idle, user_idle, user_idle_imports, call_idle) =
|
let (mod_app_idle, root_idle, user_idle, user_idle_imports, call_idle) =
|
||||||
idle::codegen(app, analysis, extra);
|
idle::codegen(app, analysis, extra);
|
||||||
|
|
||||||
if user_init.is_some() {
|
if user_init.is_some() {
|
||||||
const_app_imports.push(quote!(
|
mod_app_imports.push(quote!(
|
||||||
use super::init;
|
use super::init;
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
if user_idle.is_some() {
|
if user_idle.is_some() {
|
||||||
const_app_imports.push(quote!(
|
mod_app_imports.push(quote!(
|
||||||
use super::idle;
|
use super::idle;
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
@ -73,10 +73,10 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
|
||||||
#(#root_idle)*
|
#(#root_idle)*
|
||||||
));
|
));
|
||||||
|
|
||||||
const_app.push(quote!(
|
mod_app.push(quote!(
|
||||||
#const_app_init
|
#mod_app_init
|
||||||
|
|
||||||
#const_app_idle
|
#mod_app_idle
|
||||||
));
|
));
|
||||||
|
|
||||||
let main = util::suffixed("main");
|
let main = util::suffixed("main");
|
||||||
|
@ -97,30 +97,30 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
let (const_app_resources, mod_resources, mod_resources_imports) =
|
let (mod_app_resources, mod_resources, mod_resources_imports) =
|
||||||
resources::codegen(app, analysis, extra);
|
resources::codegen(app, analysis, extra);
|
||||||
|
|
||||||
let (
|
let (
|
||||||
const_app_hardware_tasks,
|
mod_app_hardware_tasks,
|
||||||
root_hardware_tasks,
|
root_hardware_tasks,
|
||||||
user_hardware_tasks,
|
user_hardware_tasks,
|
||||||
user_hardware_tasks_imports,
|
user_hardware_tasks_imports,
|
||||||
) = hardware_tasks::codegen(app, analysis, extra);
|
) = hardware_tasks::codegen(app, analysis, extra);
|
||||||
|
|
||||||
let (
|
let (
|
||||||
const_app_software_tasks,
|
mod_app_software_tasks,
|
||||||
root_software_tasks,
|
root_software_tasks,
|
||||||
user_software_tasks,
|
user_software_tasks,
|
||||||
user_software_tasks_imports,
|
user_software_tasks_imports,
|
||||||
) = software_tasks::codegen(app, analysis, extra);
|
) = software_tasks::codegen(app, analysis, extra);
|
||||||
|
|
||||||
let const_app_dispatchers = dispatchers::codegen(app, analysis, extra);
|
let mod_app_dispatchers = dispatchers::codegen(app, analysis, extra);
|
||||||
|
|
||||||
let const_app_spawn = spawn::codegen(app, analysis, extra);
|
let mod_app_spawn = spawn::codegen(app, analysis, extra);
|
||||||
|
|
||||||
let const_app_timer_queue = timer_queue::codegen(app, analysis, extra);
|
let mod_app_timer_queue = timer_queue::codegen(app, analysis, extra);
|
||||||
|
|
||||||
let const_app_schedule = schedule::codegen(app, extra);
|
let mod_app_schedule = schedule::codegen(app, extra);
|
||||||
|
|
||||||
let user_imports = app.user_imports.clone();
|
let user_imports = app.user_imports.clone();
|
||||||
let user_code = app.user_code.clone();
|
let user_code = app.user_code.clone();
|
||||||
|
@ -159,22 +159,22 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
|
||||||
|
|
||||||
#(#mod_resources_imports)*
|
#(#mod_resources_imports)*
|
||||||
|
|
||||||
/// Const app
|
/// app module
|
||||||
#(#const_app)*
|
#(#mod_app)*
|
||||||
|
|
||||||
#(#const_app_resources)*
|
#(#mod_app_resources)*
|
||||||
|
|
||||||
#(#const_app_hardware_tasks)*
|
#(#mod_app_hardware_tasks)*
|
||||||
|
|
||||||
#(#const_app_software_tasks)*
|
#(#mod_app_software_tasks)*
|
||||||
|
|
||||||
#(#const_app_dispatchers)*
|
#(#mod_app_dispatchers)*
|
||||||
|
|
||||||
#(#const_app_spawn)*
|
#(#mod_app_spawn)*
|
||||||
|
|
||||||
#(#const_app_timer_queue)*
|
#(#mod_app_timer_queue)*
|
||||||
|
|
||||||
#(#const_app_schedule)*
|
#(#mod_app_schedule)*
|
||||||
|
|
||||||
#(#mains)*
|
#(#mains)*
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ pub fn codegen(
|
||||||
analysis: &Analysis,
|
analysis: &Analysis,
|
||||||
extra: &Extra,
|
extra: &Extra,
|
||||||
) -> (
|
) -> (
|
||||||
// const_app_hardware_tasks -- interrupt handlers and `${task}Resources` constructors
|
// mod_app_hardware_tasks -- interrupt handlers and `${task}Resources` constructors
|
||||||
Vec<TokenStream2>,
|
Vec<TokenStream2>,
|
||||||
// root_hardware_tasks -- items that must be placed in the root of the crate:
|
// root_hardware_tasks -- items that must be placed in the root of the crate:
|
||||||
// - `${task}Locals` structs
|
// - `${task}Locals` structs
|
||||||
|
@ -26,7 +26,7 @@ pub fn codegen(
|
||||||
// user_hardware_tasks_imports -- the imports for `#[task]` functions written by the user
|
// user_hardware_tasks_imports -- the imports for `#[task]` functions written by the user
|
||||||
Vec<TokenStream2>,
|
Vec<TokenStream2>,
|
||||||
) {
|
) {
|
||||||
let mut const_app = vec![];
|
let mut mod_app = vec![];
|
||||||
let mut root = vec![];
|
let mut root = vec![];
|
||||||
let mut user_tasks = vec![];
|
let mut user_tasks = vec![];
|
||||||
let mut hardware_tasks_imports = vec![];
|
let mut hardware_tasks_imports = vec![];
|
||||||
|
@ -52,7 +52,7 @@ pub fn codegen(
|
||||||
let symbol = task.args.binds.clone();
|
let symbol = task.args.binds.clone();
|
||||||
let priority = task.args.priority;
|
let priority = task.args.priority;
|
||||||
|
|
||||||
const_app.push(quote!(
|
mod_app.push(quote!(
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
unsafe fn #symbol() {
|
unsafe fn #symbol() {
|
||||||
|
@ -90,7 +90,7 @@ pub fn codegen(
|
||||||
|
|
||||||
root.push(item);
|
root.push(item);
|
||||||
|
|
||||||
const_app.push(constructor);
|
mod_app.push(constructor);
|
||||||
}
|
}
|
||||||
|
|
||||||
root.push(module::codegen(
|
root.push(module::codegen(
|
||||||
|
@ -130,5 +130,5 @@ pub fn codegen(
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
(const_app, root, user_tasks, hardware_tasks_imports)
|
(mod_app, root, user_tasks, hardware_tasks_imports)
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ pub fn codegen(
|
||||||
analysis: &Analysis,
|
analysis: &Analysis,
|
||||||
extra: &Extra,
|
extra: &Extra,
|
||||||
) -> (
|
) -> (
|
||||||
// const_app_idle -- the `${idle}Resources` constructor
|
// mod_app_idle -- the `${idle}Resources` constructor
|
||||||
Option<TokenStream2>,
|
Option<TokenStream2>,
|
||||||
// root_idle -- items that must be placed in the root of the crate:
|
// root_idle -- items that must be placed in the root of the crate:
|
||||||
// - the `${idle}Locals` struct
|
// - the `${idle}Locals` struct
|
||||||
|
@ -31,7 +31,7 @@ pub fn codegen(
|
||||||
if app.idles.len() > 0 {
|
if app.idles.len() > 0 {
|
||||||
let idle = &app.idles.first().unwrap();
|
let idle = &app.idles.first().unwrap();
|
||||||
let mut needs_lt = false;
|
let mut needs_lt = false;
|
||||||
let mut const_app = None;
|
let mut mod_app = None;
|
||||||
let mut root_idle = vec![];
|
let mut root_idle = vec![];
|
||||||
let mut locals_pat = None;
|
let mut locals_pat = None;
|
||||||
let mut locals_new = None;
|
let mut locals_new = None;
|
||||||
|
@ -45,7 +45,7 @@ pub fn codegen(
|
||||||
resources_struct::codegen(Context::Idle, 0, &mut needs_lt, app, analysis);
|
resources_struct::codegen(Context::Idle, 0, &mut needs_lt, app, analysis);
|
||||||
|
|
||||||
root_idle.push(item);
|
root_idle.push(item);
|
||||||
const_app = Some(constructor);
|
mod_app = Some(constructor);
|
||||||
|
|
||||||
let name_resource = format_ident!("{}Resources", name);
|
let name_resource = format_ident!("{}Resources", name);
|
||||||
user_idle_imports.push(quote!(
|
user_idle_imports.push(quote!(
|
||||||
|
@ -89,13 +89,7 @@ pub fn codegen(
|
||||||
#name::Context::new(&rtic::export::Priority::new(0))
|
#name::Context::new(&rtic::export::Priority::new(0))
|
||||||
));
|
));
|
||||||
|
|
||||||
(
|
(mod_app, root_idle, user_idle, user_idle_imports, call_idle)
|
||||||
const_app,
|
|
||||||
root_idle,
|
|
||||||
user_idle,
|
|
||||||
user_idle_imports,
|
|
||||||
call_idle,
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
(
|
(
|
||||||
None,
|
None,
|
||||||
|
|
|
@ -14,7 +14,7 @@ pub fn codegen(
|
||||||
analysis: &Analysis,
|
analysis: &Analysis,
|
||||||
extra: &Extra,
|
extra: &Extra,
|
||||||
) -> (
|
) -> (
|
||||||
// const_app_idle -- the `${init}Resources` constructor
|
// mod_app_idle -- the `${init}Resources` constructor
|
||||||
Option<TokenStream2>,
|
Option<TokenStream2>,
|
||||||
// root_init -- items that must be placed in the root of the crate:
|
// root_init -- items that must be placed in the root of the crate:
|
||||||
// - the `${init}Locals` struct
|
// - the `${init}Locals` struct
|
||||||
|
@ -105,13 +105,13 @@ pub fn codegen(
|
||||||
use super::#name;
|
use super::#name;
|
||||||
));
|
));
|
||||||
|
|
||||||
let mut const_app = None;
|
let mut mod_app = None;
|
||||||
if !init.args.resources.is_empty() {
|
if !init.args.resources.is_empty() {
|
||||||
let (item, constructor) =
|
let (item, constructor) =
|
||||||
resources_struct::codegen(Context::Init, 0, &mut needs_lt, app, analysis);
|
resources_struct::codegen(Context::Init, 0, &mut needs_lt, app, analysis);
|
||||||
|
|
||||||
root_init.push(item);
|
root_init.push(item);
|
||||||
const_app = Some(constructor);
|
mod_app = Some(constructor);
|
||||||
|
|
||||||
let name_late = format_ident!("{}Resources", name);
|
let name_late = format_ident!("{}Resources", name);
|
||||||
user_init_imports.push(quote!(
|
user_init_imports.push(quote!(
|
||||||
|
@ -127,13 +127,7 @@ pub fn codegen(
|
||||||
|
|
||||||
root_init.push(module::codegen(Context::Init, needs_lt, app, extra));
|
root_init.push(module::codegen(Context::Init, needs_lt, app, extra));
|
||||||
|
|
||||||
(
|
(mod_app, root_init, user_init, user_init_imports, call_init)
|
||||||
const_app,
|
|
||||||
root_init,
|
|
||||||
user_init,
|
|
||||||
user_init_imports,
|
|
||||||
call_init,
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
(None, vec![], None, vec![], None)
|
(None, vec![], None, vec![], None)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,14 +10,14 @@ pub fn codegen(
|
||||||
analysis: &Analysis,
|
analysis: &Analysis,
|
||||||
extra: &Extra,
|
extra: &Extra,
|
||||||
) -> (
|
) -> (
|
||||||
// const_app -- the `static [mut]` variables behind the proxies
|
// mod_app -- the `static [mut]` variables behind the proxies
|
||||||
Vec<TokenStream2>,
|
Vec<TokenStream2>,
|
||||||
// mod_resources -- the `resources` module
|
// mod_resources -- the `resources` module
|
||||||
TokenStream2,
|
TokenStream2,
|
||||||
// mod_resources_imports -- the `resources` module imports
|
// mod_resources_imports -- the `resources` module imports
|
||||||
Vec<TokenStream2>,
|
Vec<TokenStream2>,
|
||||||
) {
|
) {
|
||||||
let mut const_app = vec![];
|
let mut mod_app = vec![];
|
||||||
let mut mod_resources = vec![];
|
let mut mod_resources = vec![];
|
||||||
let mut mod_resources_imports = vec![];
|
let mut mod_resources_imports = vec![];
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ pub fn codegen(
|
||||||
};
|
};
|
||||||
|
|
||||||
let attrs = &res.attrs;
|
let attrs = &res.attrs;
|
||||||
const_app.push(quote!(
|
mod_app.push(quote!(
|
||||||
#[allow(non_upper_case_globals)]
|
#[allow(non_upper_case_globals)]
|
||||||
#(#attrs)*
|
#(#attrs)*
|
||||||
#(#cfgs)*
|
#(#cfgs)*
|
||||||
|
@ -91,7 +91,7 @@ pub fn codegen(
|
||||||
use super::resources::#name;
|
use super::resources::#name;
|
||||||
));
|
));
|
||||||
|
|
||||||
const_app.push(util::impl_mutex(
|
mod_app.push(util::impl_mutex(
|
||||||
extra,
|
extra,
|
||||||
cfgs,
|
cfgs,
|
||||||
true,
|
true,
|
||||||
|
@ -118,5 +118,5 @@ pub fn codegen(
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
(const_app, mod_resources, mod_resources_imports)
|
(mod_app, mod_resources, mod_resources_imports)
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ pub fn codegen(
|
||||||
analysis: &Analysis,
|
analysis: &Analysis,
|
||||||
extra: &Extra,
|
extra: &Extra,
|
||||||
) -> (
|
) -> (
|
||||||
// const_app_software_tasks -- free queues, buffers and `${task}Resources` constructors
|
// mod_app_software_tasks -- free queues, buffers and `${task}Resources` constructors
|
||||||
Vec<TokenStream2>,
|
Vec<TokenStream2>,
|
||||||
// root_software_tasks -- items that must be placed in the root of the crate:
|
// root_software_tasks -- items that must be placed in the root of the crate:
|
||||||
// - `${task}Locals` structs
|
// - `${task}Locals` structs
|
||||||
|
@ -25,7 +25,7 @@ pub fn codegen(
|
||||||
// user_software_tasks_imports -- the imports for `#[task]` functions written by the user
|
// user_software_tasks_imports -- the imports for `#[task]` functions written by the user
|
||||||
Vec<TokenStream2>,
|
Vec<TokenStream2>,
|
||||||
) {
|
) {
|
||||||
let mut const_app = vec![];
|
let mut mod_app = vec![];
|
||||||
let mut root = vec![];
|
let mut root = vec![];
|
||||||
let mut user_tasks = vec![];
|
let mut user_tasks = vec![];
|
||||||
let mut software_tasks_imports = vec![];
|
let mut software_tasks_imports = vec![];
|
||||||
|
@ -51,7 +51,7 @@ pub fn codegen(
|
||||||
Box::new(|| util::link_section_uninit(true)),
|
Box::new(|| util::link_section_uninit(true)),
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
const_app.push(quote!(
|
mod_app.push(quote!(
|
||||||
/// Queue version of a free-list that keeps track of empty slots in
|
/// Queue version of a free-list that keeps track of empty slots in
|
||||||
/// the following buffers
|
/// the following buffers
|
||||||
static mut #fq: #fq_ty = #fq_expr;
|
static mut #fq: #fq_ty = #fq_expr;
|
||||||
|
@ -59,13 +59,13 @@ pub fn codegen(
|
||||||
|
|
||||||
// Generate a resource proxy if needed
|
// Generate a resource proxy if needed
|
||||||
if let Some(ceiling) = ceiling {
|
if let Some(ceiling) = ceiling {
|
||||||
const_app.push(quote!(
|
mod_app.push(quote!(
|
||||||
struct #fq<'a> {
|
struct #fq<'a> {
|
||||||
priority: &'a rtic::export::Priority,
|
priority: &'a rtic::export::Priority,
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
const_app.push(util::impl_mutex(
|
mod_app.push(util::impl_mutex(
|
||||||
extra,
|
extra,
|
||||||
&[],
|
&[],
|
||||||
false,
|
false,
|
||||||
|
@ -85,7 +85,7 @@ pub fn codegen(
|
||||||
let instants = util::instants_ident(name);
|
let instants = util::instants_ident(name);
|
||||||
|
|
||||||
let uninit = mk_uninit();
|
let uninit = mk_uninit();
|
||||||
const_app.push(quote!(
|
mod_app.push(quote!(
|
||||||
#uninit
|
#uninit
|
||||||
/// Buffer that holds the instants associated to the inputs of a task
|
/// Buffer that holds the instants associated to the inputs of a task
|
||||||
static mut #instants:
|
static mut #instants:
|
||||||
|
@ -96,7 +96,7 @@ pub fn codegen(
|
||||||
|
|
||||||
let uninit = mk_uninit();
|
let uninit = mk_uninit();
|
||||||
let inputs = util::inputs_ident(name);
|
let inputs = util::inputs_ident(name);
|
||||||
const_app.push(quote!(
|
mod_app.push(quote!(
|
||||||
#uninit
|
#uninit
|
||||||
/// Buffer that holds the inputs of a task
|
/// Buffer that holds the inputs of a task
|
||||||
static mut #inputs: [core::mem::MaybeUninit<#input_ty>; #cap_lit] =
|
static mut #inputs: [core::mem::MaybeUninit<#input_ty>; #cap_lit] =
|
||||||
|
@ -124,7 +124,7 @@ pub fn codegen(
|
||||||
|
|
||||||
root.push(item);
|
root.push(item);
|
||||||
|
|
||||||
const_app.push(constructor);
|
mod_app.push(constructor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// `${task}Locals`
|
// `${task}Locals`
|
||||||
|
@ -165,5 +165,5 @@ pub fn codegen(
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
(const_app, root, user_tasks, software_tasks_imports)
|
(mod_app, root, user_tasks, software_tasks_imports)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue