stm32: Add basic support for DMA priority settings

This commit is contained in:
Matous Hybl
2022-11-23 10:11:19 +01:00
parent cea29d7de3
commit 4cc0463123
4 changed files with 31 additions and 8 deletions

View File

@ -1,6 +1,7 @@
use core::sync::atomic::{fence, Ordering};
use core::task::Waker;
use embassy_cortex_m::interrupt::Priority;
use embassy_sync::waitqueue::AtomicWaker;
use super::{Burst, FlowControl, Request, TransferOptions, Word, WordSize};
@ -67,10 +68,12 @@ impl State {
static STATE: State = State::new();
/// safety: must be called only once
pub(crate) unsafe fn init() {
pub(crate) unsafe fn init(irq_priority: Priority) {
foreach_interrupt! {
($peri:ident, dma, $block:ident, $signal_name:ident, $irq:ident) => {
interrupt::$irq::steal().enable();
let irq = interrupt::$irq::steal();
irq.set_priority(irq_priority);
irq.enable();
};
}
crate::_generated::init_dma();