aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/codegen.rs')
-rw-r--r--macros/src/codegen.rs23
1 files changed, 15 insertions, 8 deletions
diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs
index 113d17f9..6920031a 100644
--- a/macros/src/codegen.rs
+++ b/macros/src/codegen.rs
@@ -9,17 +9,17 @@ mod dispatchers;
mod hardware_tasks;
mod idle;
mod init;
-mod locals;
+mod local_resources;
+mod local_resources_struct;
mod module;
mod post_init;
mod pre_init;
-mod resources;
-mod resources_struct;
+mod shared_resources;
+mod shared_resources_struct;
mod software_tasks;
mod timer_queue;
mod util;
-// TODO document the syntax here or in `rtic-syntax`
pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
let mut mod_app = vec![];
let mut mains = vec![];
@@ -52,7 +52,7 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
mod_app.push(quote!(
#mod_app_init
- #mod_app_idle
+ #(#mod_app_idle)*
));
let main = util::suffixed("main");
@@ -83,7 +83,10 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
}
));
- let (mod_app_resources, mod_resources) = resources::codegen(app, analysis, extra);
+ let (mod_app_shared_resources, mod_shared_resources) =
+ shared_resources::codegen(app, analysis, extra);
+ let (mod_app_local_resources, mod_local_resources) =
+ local_resources::codegen(app, analysis, extra);
let (mod_app_hardware_tasks, root_hardware_tasks, user_hardware_tasks) =
hardware_tasks::codegen(app, analysis, extra);
@@ -185,7 +188,9 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
#(#root)*
- #mod_resources
+ #mod_shared_resources
+
+ #mod_local_resources
#(#root_hardware_tasks)*
@@ -194,7 +199,9 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
/// app module
#(#mod_app)*
- #(#mod_app_resources)*
+ #(#mod_app_shared_resources)*
+
+ #(#mod_app_local_resources)*
#(#mod_app_hardware_tasks)*