aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen.rs
diff options
context:
space:
mode:
authorGravatar bors[bot] <26634292+bors[bot]@users.noreply.github.com> 2021-07-09 11:00:11 +0000
committerGravatar GitHub <noreply@github.com> 2021-07-09 11:00:11 +0000
commite1a4d001f8e724596cd9de3e90698ce7de473b3f (patch)
treef7aac5eae4cc2e19cc06bfd6fa8dab843dcfb276 /macros/src/codegen.rs
parent13dc3992e616d817e38c167c4b47db816855f18b (diff)
parentf3d9fd9b638a25b497e1ca02e7ce5de86c9fc1c9 (diff)
downloadrtic-e1a4d001f8e724596cd9de3e90698ce7de473b3f.tar.gz
rtic-e1a4d001f8e724596cd9de3e90698ce7de473b3f.tar.zst
rtic-e1a4d001f8e724596cd9de3e90698ce7de473b3f.zip
Merge #494
494: Resoures take 2 r=korken89 a=korken89 Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
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)*