mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-27 04:10:28 +00:00
Clean up interrupt mask operations (#4153)
* Clean up interrupt mask operations * Remove unnecessary interrupt enabling
This commit is contained in:
parent
44e7aea358
commit
13d66de06d
@ -159,9 +159,7 @@ pub fn enable_direct(interrupt: Interrupt, cpu_interrupt: CpuInterrupt) -> Resul
|
||||
unsafe {
|
||||
map(Cpu::current(), interrupt, cpu_interrupt);
|
||||
|
||||
xtensa_lx::interrupt::enable_mask(
|
||||
xtensa_lx::interrupt::get_mask() | (1 << cpu_interrupt as u32),
|
||||
);
|
||||
xtensa_lx::interrupt::enable_mask(1 << cpu_interrupt as u32);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
@ -513,9 +511,7 @@ mod vectored {
|
||||
unsafe {
|
||||
map(cpu, interrupt, cpu_interrupt);
|
||||
|
||||
xtensa_lx::interrupt::enable_mask(
|
||||
xtensa_lx::interrupt::get_mask() | (1 << cpu_interrupt as u32),
|
||||
);
|
||||
xtensa_lx::interrupt::enable_mask(1 << cpu_interrupt as u32);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
@ -72,12 +72,10 @@ const SW_INTERRUPT: u32 = if cfg!(esp32) { 1 << 29 } else { 1 << 7 };
|
||||
|
||||
pub(crate) fn setup_multitasking() {
|
||||
unsafe {
|
||||
let enabled = xtensa_lx::interrupt::disable();
|
||||
xtensa_lx::interrupt::enable_mask(
|
||||
SW_INTERRUPT
|
||||
| xtensa_lx_rt::interrupt::CpuInterruptLevel::Level2.mask()
|
||||
| xtensa_lx_rt::interrupt::CpuInterruptLevel::Level6.mask()
|
||||
| enabled,
|
||||
| xtensa_lx_rt::interrupt::CpuInterruptLevel::Level6.mask(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -123,19 +123,6 @@ mod tests {
|
||||
.start_app_core(
|
||||
unsafe { &mut *core::ptr::addr_of_mut!(APP_CORE_STACK) },
|
||||
move || {
|
||||
// app core starts with interrupts disabled
|
||||
unsafe {
|
||||
esp_hal::xtensa_lx::interrupt::enable_mask(
|
||||
esp_hal::xtensa_lx_rt::interrupt::CpuInterruptLevel::Level1.mask()
|
||||
| esp_hal::xtensa_lx_rt::interrupt::CpuInterruptLevel::Level2
|
||||
.mask()
|
||||
| esp_hal::xtensa_lx_rt::interrupt::CpuInterruptLevel::Level3
|
||||
.mask()
|
||||
| esp_hal::xtensa_lx_rt::interrupt::CpuInterruptLevel::Level6
|
||||
.mask(),
|
||||
);
|
||||
}
|
||||
|
||||
let timg0 = TimerGroup::new(peripherals.TIMG0);
|
||||
esp_preempt::start(timg0.timer0);
|
||||
let _init = esp_radio::init().unwrap();
|
||||
|
@ -154,7 +154,7 @@ where
|
||||
let r = f();
|
||||
|
||||
// enable previously disabled interrupts
|
||||
unsafe { enable_mask(old_mask) };
|
||||
unsafe { set_mask(old_mask) };
|
||||
|
||||
r
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user