diff options
| author | Dario Nieuwenhuis <[email protected]> | 2021-12-08 01:54:31 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2021-12-08 01:54:31 +0100 |
| commit | 4e349d0f5d79500d7918f62182c577a3c8797267 (patch) | |
| tree | 5d478db4d461f3e374e4922f2ec133bac5609f03 | |
| parent | fd2fe62b5f6f5c9b8dceef33ffe3fd8c58eb2bec (diff) | |
stm32/dma: use the right waker slot number for DMA2 (must add 8)
| -rw-r--r-- | embassy-stm32/src/dma/bdma.rs | 7 | ||||
| -rw-r--r-- | embassy-stm32/src/dma/dma.rs | 7 |
2 files changed, 6 insertions, 8 deletions
diff --git a/embassy-stm32/src/dma/bdma.rs b/embassy-stm32/src/dma/bdma.rs index a33543f76..3d06b6351 100644 --- a/embassy-stm32/src/dma/bdma.rs +++ b/embassy-stm32/src/dma/bdma.rs | |||
| @@ -163,7 +163,7 @@ pac::dma_channels! { | |||
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | fn set_waker(&mut self, waker: &Waker) { | 165 | fn set_waker(&mut self, waker: &Waker) { |
| 166 | unsafe {low_level_api::set_waker(crate::pac::$dma_peri, $channel_num, waker )} | 166 | unsafe {low_level_api::set_waker(dma_num!($dma_peri) * 8 + $channel_num, waker )} |
| 167 | } | 167 | } |
| 168 | } | 168 | } |
| 169 | 169 | ||
| @@ -255,9 +255,8 @@ mod low_level_api { | |||
| 255 | } | 255 | } |
| 256 | 256 | ||
| 257 | /// Sets the waker for the specified DMA channel | 257 | /// Sets the waker for the specified DMA channel |
| 258 | pub unsafe fn set_waker(_dma: pac::bdma::Dma, state_number: u8, waker: &Waker) { | 258 | pub unsafe fn set_waker(state_number: usize, waker: &Waker) { |
| 259 | let n = state_number as usize; | 259 | STATE.ch_wakers[state_number].register(waker); |
| 260 | STATE.ch_wakers[n].register(waker); | ||
| 261 | } | 260 | } |
| 262 | 261 | ||
| 263 | pub unsafe fn reset_status(dma: pac::bdma::Dma, channel_number: u8) { | 262 | pub unsafe fn reset_status(dma: pac::bdma::Dma, channel_number: u8) { |
diff --git a/embassy-stm32/src/dma/dma.rs b/embassy-stm32/src/dma/dma.rs index a5a959df4..baed24603 100644 --- a/embassy-stm32/src/dma/dma.rs +++ b/embassy-stm32/src/dma/dma.rs | |||
| @@ -158,7 +158,7 @@ pac::dma_channels! { | |||
| 158 | } | 158 | } |
| 159 | 159 | ||
| 160 | fn set_waker(&mut self, waker: &Waker) { | 160 | fn set_waker(&mut self, waker: &Waker) { |
| 161 | unsafe {low_level_api::set_waker(&crate::pac::$dma_peri, $channel_num, waker )} | 161 | unsafe {low_level_api::set_waker(dma_num!($dma_peri) * 8 + $channel_num, waker )} |
| 162 | } | 162 | } |
| 163 | } | 163 | } |
| 164 | 164 | ||
| @@ -258,9 +258,8 @@ mod low_level_api { | |||
| 258 | } | 258 | } |
| 259 | 259 | ||
| 260 | /// Sets the waker for the specified DMA channel | 260 | /// Sets the waker for the specified DMA channel |
| 261 | pub unsafe fn set_waker(_dma: &pac::dma::Dma, state_number: u8, waker: &Waker) { | 261 | pub unsafe fn set_waker(state_number: usize, waker: &Waker) { |
| 262 | let n = state_number as usize; | 262 | STATE.ch_wakers[state_number].register(waker); |
| 263 | STATE.ch_wakers[n].register(waker); | ||
| 264 | } | 263 | } |
| 265 | 264 | ||
| 266 | pub unsafe fn reset_status(dma: &crate::pac::dma::Dma, isrn: usize, isrbit: usize) { | 265 | pub unsafe fn reset_status(dma: &crate::pac::dma::Dma, isrn: usize, isrbit: usize) { |
