diff --git a/src/shared/drivers/dma/DMA.cpp b/src/shared/drivers/dma/DMA.cpp index b4ce822be5eccb85066a9967be82fbe52a8063cc..d6b79b46cd1f28c4f07bf719b10f15a920861284 100644 --- a/src/shared/drivers/dma/DMA.cpp +++ b/src/shared/drivers/dma/DMA.cpp @@ -30,6 +30,18 @@ using namespace miosix; +/** + * Here are defined the IRQHandlers for the various streams. + * + * The problem is that some of these stream are used + * by miosix. The corresponding IRQHandlers are already defined + * in there, causing conflicts. + * Moreover, the used streams differ from STM32F407xx to + * STM32F767xx. That's why some streams are available only + * for a particular board, or none (DMA2_Stream3 is not available + * at all). + */ + void __attribute__((naked)) DMA1_Stream0_IRQHandler() { saveContext(); @@ -43,19 +55,21 @@ void __attribute__((used)) DMA1_Stream0_IRQImpl() Boardcore::DMADefs::DMAStreamId::DMA1_Str0); } -// TODO: decide how to handle this situation -// Commented because already defined elsewhere by miosix -// void __attribute__((naked)) DMA1_Stream1_IRQHandler() -// { -// saveContext(); -// asm volatile("bl _Z20DMA1_Stream1_IRQImplv"); -// restoreContext(); -// } -// void __attribute__((used)) DMA1_Stream1_IRQImpl() -// { -// Boardcore::DMADriver::instance().IRQhandleInterrupt( -// Boardcore::DMADefs::DMAStreamId::DMA1_Str1); -// } +#ifndef STM32F407xx +// This stream is used by miosix for STM32F407xx boards +void __attribute__((naked)) DMA1_Stream1_IRQHandler() +{ + saveContext(); + asm volatile("bl _Z20DMA1_Stream1_IRQImplv"); + restoreContext(); +} + +void __attribute__((used)) DMA1_Stream1_IRQImpl() +{ + Boardcore::DMADriver::instance().IRQhandleInterrupt( + Boardcore::DMADefs::DMAStreamId::DMA1_Str1); +} +#endif // STM32F407xx void __attribute__((naked)) DMA1_Stream2_IRQHandler() { @@ -70,19 +84,21 @@ void __attribute__((used)) DMA1_Stream2_IRQImpl() Boardcore::DMADefs::DMAStreamId::DMA1_Str2); } -// TODO: decide how to handle this situation -// Commented because already defined elsewhere by miosix -// void __attribute__((naked)) DMA1_Stream3_IRQHandler() -// { -// saveContext(); -// asm volatile("bl _Z20DMA1_Stream3_IRQImplv"); -// restoreContext(); -// } -// void __attribute__((used)) DMA1_Stream3_IRQImpl() -// { -// Boardcore::DMADriver::instance().IRQhandleInterrupt( -// Boardcore::DMAStreamId::DMA1_Str3); -// } +#ifndef STM32F407xx +// This stream is used by miosix for STM32F407xx boards +void __attribute__((naked)) DMA1_Stream3_IRQHandler() +{ + saveContext(); + asm volatile("bl _Z20DMA1_Stream3_IRQImplv"); + restoreContext(); +} + +void __attribute__((used)) DMA1_Stream3_IRQImpl() +{ + Boardcore::DMADriver::instance().IRQhandleInterrupt( + Boardcore::DMADefs::DMAStreamId::DMA1_Str3); +} +#endif // STM32F407xx void __attribute__((naked)) DMA1_Stream4_IRQHandler() { @@ -175,8 +191,8 @@ void __attribute__((used)) DMA2_Stream2_IRQImpl() Boardcore::DMADefs::DMAStreamId::DMA2_Str2); } -// TODO: decide how to handle this situation -// Commented because already defined elsewhere by miosix +// This stream is used by miosix both for STM32F407xx +// and STM32F767xx, so it is simply commented out // void __attribute__((naked)) DMA2_Stream3_IRQHandler() // { // saveContext(); @@ -203,6 +219,8 @@ void __attribute__((used)) DMA2_Stream4_IRQImpl() Boardcore::DMADefs::DMAStreamId::DMA2_Str4); } +#ifndef STM32F767xx +// This stream is used by miosix for STM32F767xx boards void __attribute__((naked)) DMA2_Stream5_IRQHandler() { saveContext(); @@ -215,6 +233,7 @@ void __attribute__((used)) DMA2_Stream5_IRQImpl() Boardcore::DMADriver::instance().IRQhandleInterrupt( Boardcore::DMADefs::DMAStreamId::DMA2_Str5); } +#endif // STM32F767xx void __attribute__((naked)) DMA2_Stream6_IRQHandler() { @@ -229,6 +248,8 @@ void __attribute__((used)) DMA2_Stream6_IRQImpl() Boardcore::DMADefs::DMAStreamId::DMA2_Str6); } +#ifndef STM32F767xx +// This stream is used by miosix for STM32F767xx boards void __attribute__((naked)) DMA2_Stream7_IRQHandler() { saveContext(); @@ -241,6 +262,7 @@ void __attribute__((used)) DMA2_Stream7_IRQImpl() Boardcore::DMADriver::instance().IRQhandleInterrupt( Boardcore::DMADefs::DMAStreamId::DMA2_Str7); } +#endif // STM32F767xx namespace Boardcore { diff --git a/src/shared/drivers/dma/DMADefs.cpp b/src/shared/drivers/dma/DMADefs.cpp index ea405c5811e80158aee94bab31e5cffcbb434bec..c61c66a42b229f7d5dc5f1bec7b9951d2caab1b9 100644 --- a/src/shared/drivers/dma/DMADefs.cpp +++ b/src/shared/drivers/dma/DMADefs.cpp @@ -38,13 +38,28 @@ const IRQn_Type irqNumberMapping[] = { const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> mapPeripherals = { +/** + * Here are defined the mappings between peripherals and + * streams. + * + * The problem is that some of these stream are used + * by miosix. The corresponding IRQHandlers are already defined + * in there, causing conflicts. + * Moreover, the used streams differ from STM32F407xx to + * STM32F767xx. That's why some streams are available only + * for a particular board, or none (DMA2_Stream3 is not available + * at all). + * + * For this reason the unavailable mappings are commented out. + */ + #ifdef STM32F407xx // MEM-TO-MEM (only dma2 can perform mem-to-mem copy) {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str0, Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str1, Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL0}}, // Stream currently not supported + // Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str4, Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, @@ -53,13 +68,13 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> // SPI {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL3}}, // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL3}}, {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str0, Channel::CHANNEL3}}, {Peripherals::PE_SPI2_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL0}}, // {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL0}}, // Stream currently not supported + // Channel::CHANNEL0}}, {Peripherals::PE_SPI3_TX, {DMAStreamId::DMA1_Str5, Channel::CHANNEL0}}, {Peripherals::PE_SPI3_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL0}}, @@ -80,11 +95,11 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {DMAStreamId::DMA1_Str5, Channel::CHANNEL4}}, // {Peripherals::PE_USART3_TX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL4}}, // Stream currently not supported + // Channel::CHANNEL4}}, {Peripherals::PE_USART3_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL7}}, // {Peripherals::PE_USART3_RX, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL4}}, // Stream currently not supported + // Channel::CHANNEL4}}, {Peripherals::PE_UART4_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL4}}, {Peripherals::PE_UART4_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL4}}, @@ -110,7 +125,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_I2C2_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL7}}, {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL7}}, // {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL7}}, // Stream currently not supported + // Channel::CHANNEL7}}, {Peripherals::PE_I2C3_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL3}}, {Peripherals::PE_I2C3_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL3}}, @@ -118,7 +133,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_I2S2_EXT_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL2}}, // {Peripherals::PE_I2S2_EXT_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_I2S3_EXT_TX, {DMAStreamId::DMA1_Str5, Channel::CHANNEL2}}, @@ -137,7 +152,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str1, Channel::CHANNEL6}}, // {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, {Peripherals::PE_TIM1_CH2, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, {Peripherals::PE_TIM1_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL6}}, {Peripherals::PE_TIM1_CH3, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, @@ -145,12 +160,12 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM1_CH4, {DMAStreamId::DMA2_Str4, Channel::CHANNEL6}}, // {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str7, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH1, {DMAStreamId::DMA1_Str5, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH2, {DMAStreamId::DMA1_Str6, Channel::CHANNEL3}}, // {Peripherals::PE_TIM2_CH3, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH4, {DMAStreamId::DMA1_Str6, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH4, {DMAStreamId::DMA1_Str7, Channel::CHANNEL3}}, @@ -165,25 +180,25 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM4_UP, {DMAStreamId::DMA1_Str6, Channel::CHANNEL2}}, {Peripherals::PE_TIM4_CH1, {DMAStreamId::DMA1_Str0, Channel::CHANNEL2}}, // {Peripherals::PE_TIM4_CH2, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL2}}, // Stream currently not supported + // Channel::CHANNEL2}}, {Peripherals::PE_TIM4_CH3, {DMAStreamId::DMA1_Str7, Channel::CHANNEL2}}, {Peripherals::PE_TIM5_UP, {DMAStreamId::DMA1_Str0, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_UP, {DMAStreamId::DMA1_Str6, Channel::CHANNEL6}}, // {Peripherals::PE_TIM5_TRIG, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, // {Peripherals::PE_TIM5_TRIG, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH1, {DMAStreamId::DMA1_Str2, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH2, {DMAStreamId::DMA1_Str4, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH3, {DMAStreamId::DMA1_Str0, Channel::CHANNEL6}}, // {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, // {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, // {Peripherals::PE_TIM6_UP, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL7}}, // Stream currently not supported + // Channel::CHANNEL7}}, {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str2, Channel::CHANNEL1}}, {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str4, Channel::CHANNEL1}}, @@ -196,7 +211,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, // {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL7}}, // Stream currently not supported + // Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str4, Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}}, @@ -210,7 +225,6 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL1}}, // {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str3, Channel::CHANNEL1}}, - // // Stream currently not supported {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str0, Channel::CHANNEL2}}, {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str1, Channel::CHANNEL2}}, @@ -219,7 +233,6 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}}, // {Peripherals::PE_SDIO, {DMAStreamId::DMA2_Str3, Channel::CHANNEL4}}, - // // Stream currently not supported {Peripherals::PE_SDIO, {DMAStreamId::DMA2_Str6, Channel::CHANNEL4}}, {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, Channel::CHANNEL2}}, @@ -236,7 +249,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str1, Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL0}}, // Stream currently not supported + // Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str4, Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, @@ -245,13 +258,13 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> // SPI {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL3}}, // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL3}}, {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str0, Channel::CHANNEL3}}, {Peripherals::PE_SPI2_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL0}}, // {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL0}}, // Stream currently not supported + // Channel::CHANNEL0}}, {Peripherals::PE_SPI3_TX, {DMAStreamId::DMA1_Str5, Channel::CHANNEL0}}, {Peripherals::PE_SPI3_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL0}}, @@ -262,12 +275,12 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_SPI4_TX, {DMAStreamId::DMA2_Str4, Channel::CHANNEL5}}, {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str0, Channel::CHANNEL4}}, // {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL5}}, // Stream currently not supported + // Channel::CHANNEL5}}, {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str4, Channel::CHANNEL2}}, {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL7}}, // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL2}}, // Stream currently not supported + // Channel::CHANNEL2}}, {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL7}}, {Peripherals::PE_SPI6_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL1}}, @@ -287,11 +300,11 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {DMAStreamId::DMA1_Str5, Channel::CHANNEL4}}, // {Peripherals::PE_USART3_TX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL4}}, // Stream currently not supported + // Channel::CHANNEL4}}, {Peripherals::PE_USART3_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL7}}, // {Peripherals::PE_USART3_RX, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL4}}, // Stream currently not supported + // Channel::CHANNEL4}}, {Peripherals::PE_UART4_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL4}}, {Peripherals::PE_UART4_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL4}}, @@ -300,9 +313,9 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_UART5_RX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL4}}, // {Peripherals::PE_UART7_TX, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL5}}, // Stream currently not supported + // Channel::CHANNEL5}}, // {Peripherals::PE_UART7_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL5}}, // Stream currently not supported + // Channel::CHANNEL5}}, {Peripherals::PE_UART8_TX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL5}}, {Peripherals::PE_UART8_RX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL5}}, @@ -325,7 +338,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_I2C2_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL7}}, {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL7}}, // {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL7}}, // Stream currently not supported + // Channel::CHANNEL7}}, {Peripherals::PE_I2C3_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL3}}, {Peripherals::PE_I2C3_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL3}}, @@ -333,7 +346,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_I2S2_EXT_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL2}}, // {Peripherals::PE_I2S2_EXT_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_I2S3_EXT_TX, {DMAStreamId::DMA1_Str5, Channel::CHANNEL2}}, @@ -352,7 +365,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str1, Channel::CHANNEL6}}, // {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, {Peripherals::PE_TIM1_CH2, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, {Peripherals::PE_TIM1_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL6}}, {Peripherals::PE_TIM1_CH3, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, @@ -360,12 +373,12 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM1_CH4, {DMAStreamId::DMA2_Str4, Channel::CHANNEL6}}, // {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str7, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH1, {DMAStreamId::DMA1_Str5, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH2, {DMAStreamId::DMA1_Str6, Channel::CHANNEL3}}, // {Peripherals::PE_TIM2_CH3, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH4, {DMAStreamId::DMA1_Str6, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH4, {DMAStreamId::DMA1_Str7, Channel::CHANNEL3}}, @@ -380,25 +393,25 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM4_UP, {DMAStreamId::DMA1_Str6, Channel::CHANNEL2}}, {Peripherals::PE_TIM4_CH1, {DMAStreamId::DMA1_Str0, Channel::CHANNEL2}}, // {Peripherals::PE_TIM4_CH2, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL2}}, // Stream currently not supported + // Channel::CHANNEL2}}, {Peripherals::PE_TIM4_CH3, {DMAStreamId::DMA1_Str7, Channel::CHANNEL2}}, {Peripherals::PE_TIM5_UP, {DMAStreamId::DMA1_Str0, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_UP, {DMAStreamId::DMA1_Str6, Channel::CHANNEL6}}, // {Peripherals::PE_TIM5_TRIG, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, // {Peripherals::PE_TIM5_TRIG, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH1, {DMAStreamId::DMA1_Str2, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH2, {DMAStreamId::DMA1_Str4, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH3, {DMAStreamId::DMA1_Str0, Channel::CHANNEL6}}, // {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, // {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, // {Peripherals::PE_TIM6_UP, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL7}}, // Stream currently not supported + // Channel::CHANNEL7}}, {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str2, Channel::CHANNEL1}}, {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str4, Channel::CHANNEL1}}, @@ -411,7 +424,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, // {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL7}}, // Stream currently not supported + // Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str4, Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}}, @@ -425,14 +438,13 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL1}}, // {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str3, Channel::CHANNEL1}}, - // // Stream currently not supported {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str0, Channel::CHANNEL2}}, {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str1, Channel::CHANNEL2}}, {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str1, Channel::CHANNEL0}}, // {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL0}}, // Stream currently not supported + // Channel::CHANNEL0}}, {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}}, {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str4, Channel::CHANNEL1}}, @@ -441,7 +453,6 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}}, // {Peripherals::PE_SDIO, {DMAStreamId::DMA2_Str3, Channel::CHANNEL4}}, - // // Stream currently not supported {Peripherals::PE_SDIO, {DMAStreamId::DMA2_Str6, Channel::CHANNEL4}}, {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, Channel::CHANNEL2}}, @@ -458,25 +469,26 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str1, Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL0}}, // Stream currently not supported + // Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str4, Channel::CHANNEL0}}, - {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}}, + // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL0}}, {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, - {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}}, + // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str7, + // Channel::CHANNEL0}}, // SPI - {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL3}}, + // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL3}}, // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL3}}, // Stream currently not supported + // Channel::CHANNEL3}}, {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL3}}, {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str0, Channel::CHANNEL3}}, {Peripherals::PE_SPI2_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL0}}, {Peripherals::PE_SPI2_TX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL9}}, - // {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL9}}, // Stream currently not supported - // {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL0}}, // Stream currently not supported + {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str1, Channel::CHANNEL9}}, + {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str3, Channel::CHANNEL0}}, {Peripherals::PE_SPI3_TX, {DMAStreamId::DMA1_Str5, Channel::CHANNEL0}}, {Peripherals::PE_SPI3_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL0}}, @@ -488,40 +500,44 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_SPI4_TX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL9}}, {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str0, Channel::CHANNEL4}}, // {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL5}}, // Stream currently not supported + // Channel::CHANNEL5}}, {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str4, Channel::CHANNEL2}}, {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL7}}, // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL2}}, // Stream currently not supported - {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL7}}, - {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL9}}, - - {Peripherals::PE_SPI6_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL1}}, + // Channel::CHANNEL2}}, + // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL7}}, + // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL9}}, + + // {Peripherals::PE_SPI6_TX, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL1}}, {Peripherals::PE_SPI6_RX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL1}}, - {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL3}}, + // {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str7, + // Channel::CHANNEL3}}, {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str2, Channel::CHANNEL11}}, // UART & USART - {Peripherals::PE_USART1_TX, - {DMAStreamId::DMA2_Str7, Channel::CHANNEL4}}, + // {Peripherals::PE_USART1_TX, + // {DMAStreamId::DMA2_Str7, Channel::CHANNEL4}}, {Peripherals::PE_USART1_RX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL4}}, - {Peripherals::PE_USART1_RX, - {DMAStreamId::DMA2_Str5, Channel::CHANNEL4}}, + // {Peripherals::PE_USART1_RX, + // {DMAStreamId::DMA2_Str5, Channel::CHANNEL4}}, {Peripherals::PE_USART2_TX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL4}}, {Peripherals::PE_USART2_RX, {DMAStreamId::DMA1_Str5, Channel::CHANNEL4}}, - // {Peripherals::PE_USART3_TX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL4}}, // Stream currently not supported + {Peripherals::PE_USART3_TX, + {DMAStreamId::DMA1_Str3, Channel::CHANNEL4}}, {Peripherals::PE_USART3_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL7}}, - // {Peripherals::PE_USART3_RX, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL4}}, // Stream currently not supported + {Peripherals::PE_USART3_RX, + {DMAStreamId::DMA1_Str1, Channel::CHANNEL4}}, {Peripherals::PE_UART4_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL4}}, {Peripherals::PE_UART4_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL4}}, @@ -529,18 +545,16 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_UART5_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL4}}, {Peripherals::PE_UART5_RX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL4}}, - // {Peripherals::PE_UART7_TX, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL5}}, // Stream currently not supported - // {Peripherals::PE_UART7_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL5}}, // Stream currently not supported + {Peripherals::PE_UART7_TX, {DMAStreamId::DMA1_Str1, Channel::CHANNEL5}}, + {Peripherals::PE_UART7_RX, {DMAStreamId::DMA1_Str3, Channel::CHANNEL5}}, {Peripherals::PE_UART8_TX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL5}}, {Peripherals::PE_UART8_RX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL5}}, {Peripherals::PE_USART6_TX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL5}}, - {Peripherals::PE_USART6_TX, - {DMAStreamId::DMA2_Str7, Channel::CHANNEL5}}, + // {Peripherals::PE_USART6_TX, + // {DMAStreamId::DMA2_Str7, Channel::CHANNEL5}}, {Peripherals::PE_USART6_RX, {DMAStreamId::DMA2_Str1, Channel::CHANNEL5}}, {Peripherals::PE_USART6_RX, @@ -555,22 +569,20 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_I2C2_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL7}}, {Peripherals::PE_I2C2_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL8}}, {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL7}}, - // {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL7}}, // Stream currently not supported + {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str3, Channel::CHANNEL7}}, {Peripherals::PE_I2C3_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL3}}, {Peripherals::PE_I2C3_TX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL8}}, {Peripherals::PE_I2C3_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL3}}, - // {Peripherals::PE_I2C3_RX, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL1}}, // Stream currently not supported + {Peripherals::PE_I2C3_RX, {DMAStreamId::DMA1_Str1, Channel::CHANNEL1}}, {Peripherals::PE_I2C4_TX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL8}}, {Peripherals::PE_I2C4_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL2}}, - // {Peripherals::PE_I2C4_RX, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL8}}, // Stream currently not supported + {Peripherals::PE_I2C4_RX, {DMAStreamId::DMA1_Str1, Channel::CHANNEL8}}, // TIMERS - {Peripherals::PE_TIM1_UP, {DMAStreamId::DMA2_Str5, Channel::CHANNEL6}}, + // {Peripherals::PE_TIM1_UP, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL6}}, {Peripherals::PE_TIM1_TRIG, {DMAStreamId::DMA2_Str0, Channel::CHANNEL6}}, {Peripherals::PE_TIM1_TRIG, @@ -579,20 +591,18 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str1, Channel::CHANNEL6}}, // {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + // Channel::CHANNEL6}}, {Peripherals::PE_TIM1_CH2, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, {Peripherals::PE_TIM1_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL6}}, {Peripherals::PE_TIM1_CH3, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}}, {Peripherals::PE_TIM1_CH3, {DMAStreamId::DMA2_Str6, Channel::CHANNEL6}}, {Peripherals::PE_TIM1_CH4, {DMAStreamId::DMA2_Str4, Channel::CHANNEL6}}, - // {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL3}}, // Stream currently not supported + {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str1, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str7, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH1, {DMAStreamId::DMA1_Str5, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH2, {DMAStreamId::DMA1_Str6, Channel::CHANNEL3}}, - // {Peripherals::PE_TIM2_CH3, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL3}}, // Stream currently not supported + {Peripherals::PE_TIM2_CH3, {DMAStreamId::DMA1_Str1, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH4, {DMAStreamId::DMA1_Str6, Channel::CHANNEL3}}, {Peripherals::PE_TIM2_CH4, {DMAStreamId::DMA1_Str7, Channel::CHANNEL3}}, @@ -606,42 +616,40 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_TIM4_UP, {DMAStreamId::DMA1_Str6, Channel::CHANNEL2}}, {Peripherals::PE_TIM4_CH1, {DMAStreamId::DMA1_Str0, Channel::CHANNEL2}}, - // {Peripherals::PE_TIM4_CH2, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL2}}, // Stream currently not supported + {Peripherals::PE_TIM4_CH2, {DMAStreamId::DMA1_Str3, Channel::CHANNEL2}}, {Peripherals::PE_TIM4_CH3, {DMAStreamId::DMA1_Str7, Channel::CHANNEL2}}, {Peripherals::PE_TIM5_UP, {DMAStreamId::DMA1_Str0, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_UP, {DMAStreamId::DMA1_Str6, Channel::CHANNEL6}}, - // {Peripherals::PE_TIM5_TRIG, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL6}}, // Stream currently not supported - // {Peripherals::PE_TIM5_TRIG, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + {Peripherals::PE_TIM5_TRIG, + {DMAStreamId::DMA1_Str1, Channel::CHANNEL6}}, + {Peripherals::PE_TIM5_TRIG, + {DMAStreamId::DMA1_Str3, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH1, {DMAStreamId::DMA1_Str2, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH2, {DMAStreamId::DMA1_Str4, Channel::CHANNEL6}}, {Peripherals::PE_TIM5_CH3, {DMAStreamId::DMA1_Str0, Channel::CHANNEL6}}, - // {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL6}}, // Stream currently not supported - // {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str3, - // Channel::CHANNEL6}}, // Stream currently not supported + {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str1, Channel::CHANNEL6}}, + {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str3, Channel::CHANNEL6}}, - // {Peripherals::PE_TIM6_UP, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL7}}, // Stream currently not supported + {Peripherals::PE_TIM6_UP, {DMAStreamId::DMA1_Str1, Channel::CHANNEL7}}, {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str2, Channel::CHANNEL1}}, {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str4, Channel::CHANNEL1}}, {Peripherals::PE_TIM8_UP, {DMAStreamId::DMA2_Str1, Channel::CHANNEL7}}, - {Peripherals::PE_TIM8_TRIG, - {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}}, - {Peripherals::PE_TIM8_COM, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}}, + // {Peripherals::PE_TIM8_TRIG, + // {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}}, + // {Peripherals::PE_TIM8_COM, {DMAStreamId::DMA2_Str7, + // Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, // {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL7}}, // Stream currently not supported + // Channel::CHANNEL7}}, {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}}, {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str4, Channel::CHANNEL7}}, - {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}}, + // {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, + // Channel::CHANNEL7}}, // Others {Peripherals::PE_DAC1, {DMAStreamId::DMA1_Str5, Channel::CHANNEL7}}, @@ -652,7 +660,6 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL1}}, // {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str3, Channel::CHANNEL1}}, - // // Stream currently not supported {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str0, Channel::CHANNEL2}}, {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str1, Channel::CHANNEL2}}, @@ -660,33 +667,38 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str1, Channel::CHANNEL0}}, {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str6, Channel::CHANNEL10}}, // {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL0}}, // Stream currently not supported + // Channel::CHANNEL0}}, {Peripherals::PE_SAI2_A, {DMAStreamId::DMA2_Str4, Channel::CHANNEL3}}, {Peripherals::PE_SAI2_A, {DMAStreamId::DMA2_Str2, Channel::CHANNEL10}}, - {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}}, + // {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL0}}, {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str4, Channel::CHANNEL1}}, {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str0, Channel::CHANNEL10}}, - {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}}, + // {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str7, + // Channel::CHANNEL0}}, {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str6, Channel::CHANNEL3}}, {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str1, Channel::CHANNEL10}}, {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str1, Channel::CHANNEL1}}, - {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}}, + // {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}}, // {Peripherals::PE_SDMMC1, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL4}}, // Stream currently not supported + // Channel::CHANNEL4}}, {Peripherals::PE_SDMMC1, {DMAStreamId::DMA2_Str6, Channel::CHANNEL4}}, {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str0, Channel::CHANNEL11}}, - {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str5, Channel::CHANNEL11}}, + // {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL11}}, - {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, Channel::CHANNEL2}}, + // {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, + // Channel::CHANNEL2}}, {Peripherals::PE_CRYP_IN, {DMAStreamId::DMA2_Str6, Channel::CHANNEL2}}, - {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7, Channel::CHANNEL2}}, + // {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7, + // Channel::CHANNEL2}}, - // {Peripherals::PE_SPDIFRX_DT, {DMAStreamId::DMA1_Str1, - // Channel::CHANNEL0}}, // Stream currently not supported + {Peripherals::PE_SPDIFRX_DT, + {DMAStreamId::DMA1_Str1, Channel::CHANNEL0}}, {Peripherals::PE_SPDIFRX_CS, {DMAStreamId::DMA1_Str6, Channel::CHANNEL0}}, @@ -696,20 +708,20 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>> {DMAStreamId::DMA2_Str4, Channel::CHANNEL8}}, {Peripherals::PE_DFSDM1_FLT1, {DMAStreamId::DMA2_Str1, Channel::CHANNEL8}}, - {Peripherals::PE_DFSDM1_FLT1, - {DMAStreamId::DMA2_Str5, Channel::CHANNEL8}}, + // {Peripherals::PE_DFSDM1_FLT1, + // {DMAStreamId::DMA2_Str5, Channel::CHANNEL8}}, {Peripherals::PE_DFSDM1_FLT2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL8}}, {Peripherals::PE_DFSDM1_FLT2, {DMAStreamId::DMA2_Str6, Channel::CHANNEL8}}, // {Peripherals::PE_DFSDM1_FLT3, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL8}}, // Stream currently not supported - {Peripherals::PE_DFSDM1_FLT3, - {DMAStreamId::DMA2_Str7, Channel::CHANNEL8}}, + // Channel::CHANNEL8}}, + // {Peripherals::PE_DFSDM1_FLT3, + // {DMAStreamId::DMA2_Str7, Channel::CHANNEL8}}, {Peripherals::PE_JPEG_IN, {DMAStreamId::DMA2_Str0, Channel::CHANNEL9}}, // {Peripherals::PE_JPEG_IN, {DMAStreamId::DMA2_Str3, - // Channel::CHANNEL9}}, // Stream currently not supported + // Channel::CHANNEL9}} {Peripherals::PE_JPEG_OUT, {DMAStreamId::DMA2_Str1, Channel::CHANNEL9}}, {Peripherals::PE_JPEG_OUT, {DMAStreamId::DMA2_Str4, Channel::CHANNEL9}}, diff --git a/src/shared/drivers/dma/DMADefs.h b/src/shared/drivers/dma/DMADefs.h index eb62a8ccc88acb7b8fda9cf4d089a27ee74ab5a0..f2c42822c5710ce752b7fb171139ebe3ea29887c 100644 --- a/src/shared/drivers/dma/DMADefs.h +++ b/src/shared/drivers/dma/DMADefs.h @@ -49,15 +49,32 @@ namespace DMADefs enum class DMAStreamId : uint8_t { - // TODO: some streams are commented because the - // corresponding irq handler is already defined - // by miosix. For now those streams are not usable, - // decide how to handle this situation. + /** + * Here are defined the selectable streams. + * + * The problem is that some of these stream are used + * by miosix. The corresponding IRQHandlers are already defined + * in there, causing conflicts. + * Moreover, the used streams differ from STM32F407xx to + * STM32F767xx. That's why some streams are available only + * for a particular board, or none (DMA2_Stream3 is not available + * at all). + */ DMA1_Str0 = 0, - // DMA1_Str1 = 1, + +#ifndef STM32F407xx + // This stream is used by miosix for STM32F407xx boards + DMA1_Str1 = 1, +#endif // STM32F407xx + DMA1_Str2 = 2, - // DMA1_Str3 = 3, + +#ifndef STM32F407xx + // This stream is used by miosix for STM32F407xx boards + DMA1_Str3 = 3, +#endif // STM32F407xx + DMA1_Str4 = 4, DMA1_Str5 = 5, DMA1_Str6 = 6, @@ -65,11 +82,20 @@ enum class DMAStreamId : uint8_t DMA2_Str0 = 8, DMA2_Str1 = 9, DMA2_Str2 = 10, - // DMA2_Str3 = 11, + // DMA2_Str3 = 11, // Always used by miosix DMA2_Str4 = 12, + +#ifndef STM32F767xx + // This stream is used by miosix for STM32F767xx boards DMA2_Str5 = 13, +#endif // STM32F767xx + DMA2_Str6 = 14, + +#ifndef STM32F767xx + // This stream is used by miosix for STM32F767xx boards DMA2_Str7 = 15, +#endif // STM32F767xx }; /**