summaryrefslogtreecommitdiff
path: root/src/stm/ao_dma_stm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stm/ao_dma_stm.c')
-rw-r--r--src/stm/ao_dma_stm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/stm/ao_dma_stm.c b/src/stm/ao_dma_stm.c
index 0c86b49a..a24c6d3a 100644
--- a/src/stm/ao_dma_stm.c
+++ b/src/stm/ao_dma_stm.c
@@ -48,7 +48,11 @@ ao_dma_isr(uint8_t index) {
void stm_dma1_channel1_isr(void) { ao_dma_isr(STM_DMA_INDEX(1)); }
void stm_dma1_channel2_isr(void) { ao_dma_isr(STM_DMA_INDEX(2)); }
+#ifdef STM_DMA1_3_STOLEN
+#define LEAVE_DMA_ON
+#else
void stm_dma1_channel3_isr(void) { ao_dma_isr(STM_DMA_INDEX(3)); }
+#endif
void stm_dma1_channel4_isr(void) { ao_dma_isr(STM_DMA_INDEX(4)); }
#ifdef STM_DMA1_5_STOLEN
#define LEAVE_DMA_ON
@@ -179,6 +183,13 @@ ao_dma_init(void)
continue;
}
#endif
+#if STM_DMA1_3_STOLEN
+ if (index == STM_DMA_INDEX(3)) {
+ ao_dma_allocated[index] = 1;
+ ao_dma_mutex[index] = 0xff;
+ continue;
+ }
+#endif
stm_nvic_set_enable(STM_ISR_DMA1_CHANNEL1_POS + index);
stm_nvic_set_priority(STM_ISR_DMA1_CHANNEL1_POS + index, 4);
ao_dma_allocated[index] = 0;