diff options
Diffstat (limited to 'embassy-executor-macros/src')
| -rw-r--r-- | embassy-executor-macros/src/macros/main.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/embassy-executor-macros/src/macros/main.rs b/embassy-executor-macros/src/macros/main.rs index fcc04d9c0..f043ff7f6 100644 --- a/embassy-executor-macros/src/macros/main.rs +++ b/embassy-executor-macros/src/macros/main.rs | |||
| @@ -170,6 +170,14 @@ For example: `#[embassy_executor::main(entry = ..., executor = \"some_crate::Exe | |||
| 170 | let f_body = f.body; | 170 | let f_body = f.body; |
| 171 | let out = &f.sig.output; | 171 | let out = &f.sig.output; |
| 172 | 172 | ||
| 173 | let name_main_task = if cfg!(feature = "rtos-trace") { | ||
| 174 | quote!( | ||
| 175 | main_task.metadata().set_name("main\0"); | ||
| 176 | ) | ||
| 177 | } else { | ||
| 178 | quote!() | ||
| 179 | }; | ||
| 180 | |||
| 173 | let (main_ret, mut main_body) = match arch.flavor { | 181 | let (main_ret, mut main_body) = match arch.flavor { |
| 174 | Flavor::Standard => ( | 182 | Flavor::Standard => ( |
| 175 | quote!(!), | 183 | quote!(!), |
| @@ -181,7 +189,9 @@ For example: `#[embassy_executor::main(entry = ..., executor = \"some_crate::Exe | |||
| 181 | let mut executor = #executor::new(); | 189 | let mut executor = #executor::new(); |
| 182 | let executor = unsafe { __make_static(&mut executor) }; | 190 | let executor = unsafe { __make_static(&mut executor) }; |
| 183 | executor.run(|spawner| { | 191 | executor.run(|spawner| { |
| 184 | spawner.spawn(__embassy_main(spawner).unwrap()); | 192 | let main_task = __embassy_main(spawner).unwrap(); |
| 193 | #name_main_task | ||
| 194 | spawner.spawn(main_task); | ||
| 185 | }) | 195 | }) |
| 186 | }, | 196 | }, |
| 187 | ), | 197 | ), |
| @@ -191,7 +201,9 @@ For example: `#[embassy_executor::main(entry = ..., executor = \"some_crate::Exe | |||
| 191 | let executor = ::std::boxed::Box::leak(::std::boxed::Box::new(#executor::new())); | 201 | let executor = ::std::boxed::Box::leak(::std::boxed::Box::new(#executor::new())); |
| 192 | 202 | ||
| 193 | executor.start(|spawner| { | 203 | executor.start(|spawner| { |
| 194 | spawner.spawn(__embassy_main(spawner).unwrap()); | 204 | let main_task = __embassy_main(spawner).unwrap(); |
| 205 | #name_main_task | ||
| 206 | spawner.spawn(main_task); | ||
| 195 | }); | 207 | }); |
| 196 | 208 | ||
| 197 | Ok(()) | 209 | Ok(()) |
