|
57 | 57 | #![no_main] |
58 | 58 | #![feature(type_alias_impl_trait)] |
59 | 59 |
|
60 | | -use core::mem; |
61 | | - |
62 | | -use cortex_m::peripheral::NVIC; |
63 | 60 | use cortex_m_rt::entry; |
64 | 61 | use defmt::{info, unwrap}; |
65 | 62 | use embassy_executor::{Executor, InterruptExecutor}; |
66 | 63 | use embassy_rp::interrupt; |
67 | | -use embassy_rp::pac::Interrupt; |
| 64 | +use embassy_rp::interrupt::{InterruptExt, Priority}; |
68 | 65 | use embassy_time::{Duration, Instant, Timer, TICK_HZ}; |
69 | 66 | use static_cell::StaticCell; |
70 | 67 | use {defmt_rtt as _, panic_probe as _}; |
@@ -130,18 +127,15 @@ fn main() -> ! { |
130 | 127 | info!("Hello World!"); |
131 | 128 |
|
132 | 129 | let _p = embassy_rp::init(Default::default()); |
133 | | - let mut nvic: NVIC = unsafe { mem::transmute(()) }; |
134 | 130 |
|
135 | 131 | // High-priority executor: SWI_IRQ_1, priority level 2 |
136 | | - unsafe { nvic.set_priority(Interrupt::SWI_IRQ_1, 2 << 6) }; |
137 | | - info!("bla: {}", NVIC::get_priority(Interrupt::SWI_IRQ_1)); |
138 | | - let spawner = EXECUTOR_HIGH.start(Interrupt::SWI_IRQ_1); |
| 132 | + interrupt::SWI_IRQ_1.set_priority(Priority::P2); |
| 133 | + let spawner = EXECUTOR_HIGH.start(interrupt::SWI_IRQ_1); |
139 | 134 | unwrap!(spawner.spawn(run_high())); |
140 | 135 |
|
141 | 136 | // Medium-priority executor: SWI_IRQ_0, priority level 3 |
142 | | - unsafe { nvic.set_priority(Interrupt::SWI_IRQ_0, 3 << 6) }; |
143 | | - info!("bla: {}", NVIC::get_priority(Interrupt::SWI_IRQ_0)); |
144 | | - let spawner = EXECUTOR_MED.start(Interrupt::SWI_IRQ_0); |
| 137 | + interrupt::SWI_IRQ_0.set_priority(Priority::P3); |
| 138 | + let spawner = EXECUTOR_MED.start(interrupt::SWI_IRQ_0); |
145 | 139 | unwrap!(spawner.spawn(run_med())); |
146 | 140 |
|
147 | 141 | // Low priority executor: runs in thread mode, using WFE/SEV |
|
0 commit comments