aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/dma/mod.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-10-12 00:34:47 +0200
committerDario Nieuwenhuis <[email protected]>2023-10-12 16:20:34 +0200
commit97ca0e77bf6e6f36aae18cb57fbfa8e583597327 (patch)
tree20f7a2f1e27e0d30e530047e819b6efeaf2bd9cc /embassy-stm32/src/dma/mod.rs
parent66e399b5c61653f1f66cd3fd1592936e4085d6b5 (diff)
stm32: avoid creating many tiny critical sections in init.
Saves 292 bytes on stm32f0 bilnky with max optimizations (from 3132 to 2840).
Diffstat (limited to 'embassy-stm32/src/dma/mod.rs')
-rw-r--r--embassy-stm32/src/dma/mod.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/embassy-stm32/src/dma/mod.rs b/embassy-stm32/src/dma/mod.rs
index 4f1a58ae2..29fced8fc 100644
--- a/embassy-stm32/src/dma/mod.rs
+++ b/embassy-stm32/src/dma/mod.rs
@@ -56,16 +56,17 @@ pub(crate) fn slice_ptr_parts_mut<T>(slice: *mut [T]) -> (usize, usize) {
56 56
57// safety: must be called only once at startup 57// safety: must be called only once at startup
58pub(crate) unsafe fn init( 58pub(crate) unsafe fn init(
59 cs: critical_section::CriticalSection,
59 #[cfg(bdma)] bdma_priority: Priority, 60 #[cfg(bdma)] bdma_priority: Priority,
60 #[cfg(dma)] dma_priority: Priority, 61 #[cfg(dma)] dma_priority: Priority,
61 #[cfg(gpdma)] gpdma_priority: Priority, 62 #[cfg(gpdma)] gpdma_priority: Priority,
62) { 63) {
63 #[cfg(bdma)] 64 #[cfg(bdma)]
64 bdma::init(bdma_priority); 65 bdma::init(cs, bdma_priority);
65 #[cfg(dma)] 66 #[cfg(dma)]
66 dma::init(dma_priority); 67 dma::init(cs, dma_priority);
67 #[cfg(gpdma)] 68 #[cfg(gpdma)]
68 gpdma::init(gpdma_priority); 69 gpdma::init(cs, gpdma_priority);
69 #[cfg(dmamux)] 70 #[cfg(dmamux)]
70 dmamux::init(); 71 dmamux::init(cs);
71} 72}