rtic_macros/codegen/
pre_init.rs
1use super::bindings::{pre_init_checks, pre_init_enable_interrupts};
2use crate::analyze::Analysis;
3use crate::syntax::ast::App;
4use proc_macro2::TokenStream as TokenStream2;
5use quote::quote;
6
7pub fn codegen(app: &App, analysis: &Analysis) -> Vec<TokenStream2> {
9 let mut stmts = vec![];
10
11 stmts.push(quote!(rtic::export::interrupt::disable();));
13
14 if app.args.core {
15 stmts.push(quote!(
16 let mut core: rtic::export::Peripherals = rtic::export::Peripherals::steal().into();
18 ));
19 }
20
21 stmts.append(&mut pre_init_checks(app, analysis));
22
23 stmts.append(&mut pre_init_enable_interrupts(app, analysis));
24
25 stmts
26}