DMA driver issue with STM32G431 Topic is solved
Posted: Thu Sep 16, 2021 2:50 am
Very similar to this issue viewtopic.php?f=35&t=5838
However on the STM32G431, also trying to enable I2C1.
The STM32G431xx, STM32G441xx, STM32G471xx are the outliers in the G4xx series as the rest all seem to have 2 x 8 DMA streams where they only have 2 x 6 DMA streams.
Wrapping the defines in stm32_isr.h for channel 7 and 8 to not apply to these fixes the problem and I can compile but not sure if this is the correct way to go about it.
Thank you
However on the STM32G431, also trying to enable I2C1.
The STM32G431xx, STM32G441xx, STM32G471xx are the outliers in the G4xx series as the rest all seem to have 2 x 8 DMA streams where they only have 2 x 6 DMA streams.
Code: Select all
Compiling: lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c: In function 'Vector84':
lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c:398:21: error: 'STM32_DMA1_STREAM7' undeclared (first use in this function); did you mean 'STM32_DMA1_STREAM1'?
398 | dmaServeInterrupt(STM32_DMA1_STREAM7);
| ^~~~~~~~~~~~~~~~~~
| STM32_DMA1_STREAM1
lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c:398:21: note: each undeclared identifier is reported only once for each function it appears in
lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c: In function 'Vector1C0':
lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c:414:21: error: 'STM32_DMA1_STREAM8' undeclared (first use in this function); did you mean 'STM32_DMA1_STREAM1'?
414 | dmaServeInterrupt(STM32_DMA1_STREAM8);
| ^~~~~~~~~~~~~~~~~~
| STM32_DMA1_STREAM1
lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c: In function 'Vector1C8':
lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c:526:21: error: 'STM32_DMA2_STREAM7' undeclared (first use in this function); did you mean 'STM32_DMA2_STREAM1'?
526 | dmaServeInterrupt(STM32_DMA2_STREAM7);
| ^~~~~~~~~~~~~~~~~~
| STM32_DMA2_STREAM1
lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c: In function 'Vector1CC':
lib/chibios/os/hal/ports/STM32/LLD/DMAv1/stm32_dma.c:542:21: error: 'STM32_DMA2_STREAM8' undeclared (first use in this function); did you mean 'STM32_DMA2_STREAM1'?
542 | dmaServeInterrupt(STM32_DMA2_STREAM8);
| ^~~~~~~~~~~~~~~~~~
| STM32_DMA2_STREAM1
[ERRORS]
Wrapping the defines in stm32_isr.h for channel 7 and 8 to not apply to these fixes the problem and I can compile but not sure if this is the correct way to go about it.
Thank you