diff options
Diffstat (limited to 'embassy-executor/src/arch/cortex_ar.rs')
| -rw-r--r-- | embassy-executor/src/arch/cortex_ar.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/embassy-executor/src/arch/cortex_ar.rs b/embassy-executor/src/arch/cortex_ar.rs index f9e2f3f7c..ce572738a 100644 --- a/embassy-executor/src/arch/cortex_ar.rs +++ b/embassy-executor/src/arch/cortex_ar.rs | |||
| @@ -1,7 +1,10 @@ | |||
| 1 | #[cfg(arm_profile = "legacy")] | ||
| 2 | compile_error!("`arch-cortex-ar` does not support the legacy ARM profile, WFE/SEV are not available."); | ||
| 3 | |||
| 1 | #[cfg(feature = "executor-interrupt")] | 4 | #[cfg(feature = "executor-interrupt")] |
| 2 | compile_error!("`executor-interrupt` is not supported with `arch-cortex-ar`."); | 5 | compile_error!("`executor-interrupt` is not supported with `arch-cortex-ar`."); |
| 3 | 6 | ||
| 4 | #[export_name = "__pender"] | 7 | #[unsafe(export_name = "__pender")] |
| 5 | #[cfg(any(feature = "executor-thread", feature = "executor-interrupt"))] | 8 | #[cfg(any(feature = "executor-thread", feature = "executor-interrupt"))] |
| 6 | fn __pender(context: *mut ()) { | 9 | fn __pender(context: *mut ()) { |
| 7 | // `context` is always `usize::MAX` created by `Executor::run`. | 10 | // `context` is always `usize::MAX` created by `Executor::run`. |
| @@ -10,7 +13,7 @@ fn __pender(context: *mut ()) { | |||
| 10 | #[cfg(feature = "executor-thread")] | 13 | #[cfg(feature = "executor-thread")] |
| 11 | // Try to make Rust optimize the branching away if we only use thread mode. | 14 | // Try to make Rust optimize the branching away if we only use thread mode. |
| 12 | if !cfg!(feature = "executor-interrupt") || context == THREAD_PENDER { | 15 | if !cfg!(feature = "executor-interrupt") || context == THREAD_PENDER { |
| 13 | cortex_ar::asm::sev(); | 16 | aarch32_cpu::asm::sev(); |
| 14 | return; | 17 | return; |
| 15 | } | 18 | } |
| 16 | } | 19 | } |
| @@ -23,10 +26,10 @@ mod thread { | |||
| 23 | 26 | ||
| 24 | use core::marker::PhantomData; | 27 | use core::marker::PhantomData; |
| 25 | 28 | ||
| 26 | use cortex_ar::asm::wfe; | 29 | use aarch32_cpu::asm::wfe; |
| 27 | pub use embassy_executor_macros::main_cortex_ar as main; | 30 | pub use embassy_executor_macros::main_cortex_ar as main; |
| 28 | 31 | ||
| 29 | use crate::{raw, Spawner}; | 32 | use crate::{Spawner, raw}; |
| 30 | 33 | ||
| 31 | /// Thread mode executor, using WFE/SEV. | 34 | /// Thread mode executor, using WFE/SEV. |
| 32 | /// | 35 | /// |
