From 76cf14c520091d00985f845203580e14c611ed14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Thu, 27 Aug 2020 11:21:56 +0000 Subject: Brutally yank out multicore --- macros/src/codegen.rs | 91 ++++++++++++++++++++------------------------------- 1 file changed, 36 insertions(+), 55 deletions(-) (limited to 'macros/src/codegen.rs') diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs index 2433684..73531c9 100644 --- a/macros/src/codegen.rs +++ b/macros/src/codegen.rs @@ -30,65 +30,60 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { let mut root = vec![]; let mut user = vec![]; - // generate a `main` function for each core - for core in 0..app.args.cores { - let assertion_stmts = assertions::codegen(core, analysis, extra); + // generate the `main` function + let assertion_stmts = assertions::codegen(analysis); - let (const_app_pre_init, pre_init_stmts) = pre_init::codegen(core, &app, analysis, extra); + let pre_init_stmts = pre_init::codegen(&app, analysis, extra); - let (const_app_init, root_init, user_init, call_init) = - init::codegen(core, app, analysis, extra); + let (const_app_init, root_init, user_init, call_init) = + init::codegen(app, analysis, extra); - let (const_app_post_init, post_init_stmts) = - post_init::codegen(core, &app, analysis, extra); + let (const_app_post_init, post_init_stmts) = + post_init::codegen(&app, analysis); - let (const_app_idle, root_idle, user_idle, call_idle) = - idle::codegen(core, app, analysis, extra); + let (const_app_idle, root_idle, user_idle, call_idle) = + idle::codegen(app, analysis, extra); - user.push(quote!( - #user_init + user.push(quote!( + #user_init - #user_idle - )); + #user_idle + )); - root.push(quote!( - #(#root_init)* + root.push(quote!( + #(#root_init)* - #(#root_idle)* - )); + #(#root_idle)* + )); - const_app.push(quote!( - #(#const_app_pre_init)* + const_app.push(quote!( + #const_app_init - #const_app_init + #(#const_app_post_init)* - #(#const_app_post_init)* + #const_app_idle + )); - #const_app_idle - )); + let main = util::suffixed("main"); + let section = util::link_section("text"); + mains.push(quote!( + #[no_mangle] + #section + unsafe extern "C" fn #main() -> ! { + let _TODO: () = (); - let cfg_core = util::cfg_core(core, app.args.cores); - let main = util::suffixed("main", core); - let section = util::link_section("text", core); - mains.push(quote!( - #[no_mangle] - #section - #cfg_core - unsafe extern "C" fn #main() -> ! { - let _TODO: () = (); + #(#assertion_stmts)* - #(#assertion_stmts)* + #(#pre_init_stmts)* - #(#pre_init_stmts)* + #call_init - #call_init + #(#post_init_stmts)* - #(#post_init_stmts)* + #call_idle + } + )); - #call_idle - } - )); - } let (const_app_resources, mod_resources) = resources::codegen(app, analysis, extra); @@ -106,18 +101,6 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { let const_app_schedule = schedule::codegen(app, extra); - let cores = app.args.cores.to_string(); - let cfg_core = quote!(#[cfg(core = #cores)]); - let msg = format!( - "specified {} core{} but tried to compile for more than {0} core{1}", - app.args.cores, - if app.args.cores > 1 { "s" } else { "" } - ); - let check_excess_cores = quote!( - #cfg_core - compile_error!(#msg); - ); - let name = &app.name; let device = extra.device; quote!( @@ -141,8 +124,6 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { /// Always include the device crate which contains the vector table use #device as _; - #check_excess_cores - #(#const_app)* #(#const_app_resources)* -- cgit v1.2.3 From f151d5871c559012173356259030c1dd36a442cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Tue, 1 Sep 2020 14:39:05 +0000 Subject: Cargo fmt --- macros/src/codegen.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'macros/src/codegen.rs') diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs index 73531c9..35a44be 100644 --- a/macros/src/codegen.rs +++ b/macros/src/codegen.rs @@ -35,14 +35,11 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { let pre_init_stmts = pre_init::codegen(&app, analysis, extra); - let (const_app_init, root_init, user_init, call_init) = - init::codegen(app, analysis, extra); + let (const_app_init, root_init, user_init, call_init) = init::codegen(app, analysis, extra); - let (const_app_post_init, post_init_stmts) = - post_init::codegen(&app, analysis); + let (const_app_post_init, post_init_stmts) = post_init::codegen(&app, analysis); - let (const_app_idle, root_idle, user_idle, call_idle) = - idle::codegen(app, analysis, extra); + let (const_app_idle, root_idle, user_idle, call_idle) = idle::codegen(app, analysis, extra); user.push(quote!( #user_init @@ -84,7 +81,6 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { } )); - let (const_app_resources, mod_resources) = resources::codegen(app, analysis, extra); let (const_app_hardware_tasks, root_hardware_tasks, user_hardware_tasks) = -- cgit v1.2.3 From d06cf91acc1126e66002f8884b1e7b7a65a9b24a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Tue, 1 Sep 2020 17:04:55 +0000 Subject: Remove stale code, fix comment styling --- macros/src/codegen.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'macros/src/codegen.rs') diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs index 35a44be..fe4d59a 100644 --- a/macros/src/codegen.rs +++ b/macros/src/codegen.rs @@ -30,14 +30,14 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { let mut root = vec![]; let mut user = vec![]; - // generate the `main` function + // Generate the `main` function let assertion_stmts = assertions::codegen(analysis); let pre_init_stmts = pre_init::codegen(&app, analysis, extra); let (const_app_init, root_init, user_init, call_init) = init::codegen(app, analysis, extra); - let (const_app_post_init, 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, call_idle) = idle::codegen(app, analysis, extra); @@ -56,16 +56,12 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { const_app.push(quote!( #const_app_init - #(#const_app_post_init)* - #const_app_idle )); let main = util::suffixed("main"); - let section = util::link_section("text"); mains.push(quote!( #[no_mangle] - #section unsafe extern "C" fn #main() -> ! { let _TODO: () = (); @@ -115,7 +111,7 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { #(#root_software_tasks)* /// Implementation details - // the user can't access the items within this `const` item + // The user can't access the items within this `const` item const #name: () = { /// Always include the device crate which contains the vector table use #device as _; -- cgit v1.2.3