diff options
Diffstat (limited to 'embassy-rp/src/multicore.rs')
| -rw-r--r-- | embassy-rp/src/multicore.rs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/embassy-rp/src/multicore.rs b/embassy-rp/src/multicore.rs index adedc98ad..c305513ca 100644 --- a/embassy-rp/src/multicore.rs +++ b/embassy-rp/src/multicore.rs | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | //! use embassy_rp::multicore::Stack; | 14 | //! use embassy_rp::multicore::Stack; |
| 15 | //! use static_cell::StaticCell; | 15 | //! use static_cell::StaticCell; |
| 16 | //! use embassy_executor::Executor; | 16 | //! use embassy_executor::Executor; |
| 17 | //! use core::ptr::addr_of_mut; | ||
| 17 | //! | 18 | //! |
| 18 | //! static mut CORE1_STACK: Stack<4096> = Stack::new(); | 19 | //! static mut CORE1_STACK: Stack<4096> = Stack::new(); |
| 19 | //! static EXECUTOR0: StaticCell<Executor> = StaticCell::new(); | 20 | //! static EXECUTOR0: StaticCell<Executor> = StaticCell::new(); |
| @@ -36,7 +37,7 @@ | |||
| 36 | //! fn main() -> ! { | 37 | //! fn main() -> ! { |
| 37 | //! let p = embassy_rp::init(Default::default()); | 38 | //! let p = embassy_rp::init(Default::default()); |
| 38 | //! | 39 | //! |
| 39 | //! embassy_rp::multicore::spawn_core1(p.CORE1, unsafe { &mut CORE1_STACK }, move || { | 40 | //! embassy_rp::multicore::spawn_core1(p.CORE1, unsafe { &mut *addr_of_mut!(CORE1_STACK) }, move || { |
| 40 | //! let executor1 = EXECUTOR1.init(Executor::new()); | 41 | //! let executor1 = EXECUTOR1.init(Executor::new()); |
| 41 | //! executor1.run(|spawner| spawner.spawn(core1_task().unwrap())); | 42 | //! executor1.run(|spawner| spawner.spawn(core1_task().unwrap())); |
| 42 | //! }); | 43 | //! }); |
| @@ -110,7 +111,6 @@ impl<const SIZE: usize> Stack<SIZE> { | |||
| 110 | 111 | ||
| 111 | #[cfg(all(feature = "rt", feature = "rp2040"))] | 112 | #[cfg(all(feature = "rt", feature = "rp2040"))] |
| 112 | #[interrupt] | 113 | #[interrupt] |
| 113 | #[link_section = ".data.ram_func"] | ||
| 114 | unsafe fn SIO_IRQ_PROC1() { | 114 | unsafe fn SIO_IRQ_PROC1() { |
| 115 | let sio = pac::SIO; | 115 | let sio = pac::SIO; |
| 116 | // Clear IRQ | 116 | // Clear IRQ |
| @@ -135,7 +135,6 @@ unsafe fn SIO_IRQ_PROC1() { | |||
| 135 | 135 | ||
| 136 | #[cfg(all(feature = "rt", feature = "_rp235x"))] | 136 | #[cfg(all(feature = "rt", feature = "_rp235x"))] |
| 137 | #[interrupt] | 137 | #[interrupt] |
| 138 | #[link_section = ".data.ram_func"] | ||
| 139 | unsafe fn SIO_IRQ_FIFO() { | 138 | unsafe fn SIO_IRQ_FIFO() { |
| 140 | let sio = pac::SIO; | 139 | let sio = pac::SIO; |
| 141 | // Clear IRQ | 140 | // Clear IRQ |
