aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/software_tasks.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2023-01-23 20:05:47 +0100
committerGravatar Henrik Tjäder <henrik@tjaders.com> 2023-03-01 00:33:31 +0100
commit306aa47170fd59369b7a184924e287dc3706d64d (patch)
tree75a331a63a4021f078e330bf2ce4edb1228e2ecf /macros/src/codegen/software_tasks.rs
parentb8b881f446a226d6f3c4a7db7c9174590b47dbf6 (diff)
downloadrtic-306aa47170fd59369b7a184924e287dc3706d64d.tar.gz
rtic-306aa47170fd59369b7a184924e287dc3706d64d.tar.zst
rtic-306aa47170fd59369b7a184924e287dc3706d64d.zip
Add rtic-timer (timerqueue + monotonic) and rtic-monotonics (systick-monotonic)
Diffstat (limited to 'macros/src/codegen/software_tasks.rs')
-rw-r--r--macros/src/codegen/software_tasks.rs64
1 files changed, 0 insertions, 64 deletions
diff --git a/macros/src/codegen/software_tasks.rs b/macros/src/codegen/software_tasks.rs
deleted file mode 100644
index 34fc851a..00000000
--- a/macros/src/codegen/software_tasks.rs
+++ /dev/null
@@ -1,64 +0,0 @@
-use crate::syntax::{ast::App, Context};
-use crate::{
- analyze::Analysis,
- codegen::{local_resources_struct, module, shared_resources_struct},
-};
-use proc_macro2::TokenStream as TokenStream2;
-use quote::quote;
-
-pub fn codegen(app: &App, analysis: &Analysis) -> TokenStream2 {
- let mut mod_app = vec![];
- let mut root = vec![];
- let mut user_tasks = vec![];
-
- // Any task
- for (name, task) in app.software_tasks.iter() {
- if !task.args.local_resources.is_empty() {
- let (item, constructor) =
- local_resources_struct::codegen(Context::SoftwareTask(name), app);
-
- root.push(item);
-
- mod_app.push(constructor);
- }
-
- if !task.args.shared_resources.is_empty() {
- let (item, constructor) =
- shared_resources_struct::codegen(Context::SoftwareTask(name), app);
-
- root.push(item);
-
- mod_app.push(constructor);
- }
-
- if !&task.is_extern {
- let context = &task.context;
- let attrs = &task.attrs;
- let cfgs = &task.cfgs;
- let stmts = &task.stmts;
- let inputs = &task.inputs;
-
- user_tasks.push(quote!(
- #(#attrs)*
- #(#cfgs)*
- #[allow(non_snake_case)]
- async fn #name<'a>(#context: #name::Context<'a> #(,#inputs)*) {
- use rtic::Mutex as _;
- use rtic::mutex::prelude::*;
-
- #(#stmts)*
- }
- ));
- }
-
- root.push(module::codegen(Context::SoftwareTask(name), app, analysis));
- }
-
- quote!(
- #(#mod_app)*
-
- #(#root)*
-
- #(#user_tasks)*
- )
-}