@@ -287,6 +287,149 @@ static dma_index_t get_dma_index(
287287 }
288288}
289289
290+ /**
291+ * @brief This function will get the interrupt number for a DMA
292+ * @param dma_handle : dma channel or strea
293+ * @retval None
294+ */
295+ IRQn_Type get_dma_interrupt (
296+ #if defined(STM32F2xx ) || defined(STM32F4xx ) || defined(STM32F7xx )
297+ DMA_Stream_TypeDef
298+ #else
299+ DMA_Channel_TypeDef
300+ #endif
301+ * instance )
302+ {
303+ switch ((uint32_t )instance ) {
304+ #ifdef DMA1_Channel1
305+ case (uint32_t )DMA1_Channel1 :
306+ return DMA1_Channel1_IRQn ;
307+ #endif
308+ #ifdef DMA1_Channel2
309+ case (uint32_t )DMA1_Channel2 :
310+ return DMA1_Channel2_IRQn ;
311+ #endif
312+ #ifdef DMA1_Channel3
313+ case (uint32_t )DMA1_Channel3 :
314+ return DMA1_Channel3_IRQn ;
315+ #endif
316+ #ifdef DMA1_Channel4
317+ case (uint32_t )DMA1_Channel4 :
318+ return DMA1_Channel4_IRQn ;
319+ #endif
320+ #ifdef DMA1_Channel5
321+ case (uint32_t )DMA1_Channel5 :
322+ return DMA1_Channel5_IRQn ;
323+ #endif
324+ #ifdef DMA1_Channel6
325+ case (uint32_t )DMA1_Channel6 :
326+ return DMA1_Channel6_IRQn ;
327+ #endif
328+ #ifdef DMA1_Channel7
329+ case (uint32_t )DMA1_Channel7 :
330+ return DMA1_Channel7_IRQn ;
331+ #endif
332+ #ifdef DMA2_Channel1
333+ case (uint32_t )DMA2_Channel1 :
334+ return DMA2_Channel1_IRQn ;
335+ #endif
336+ #ifdef DMA2_Channel2
337+ case (uint32_t )DMA2_Channel2 :
338+ return DMA2_Channel2_IRQn ;
339+ #endif
340+ #ifdef DMA2_Channel3
341+ case (uint32_t )DMA2_Channel3 :
342+ return DMA2_Channel3_IRQn ;
343+ #endif
344+ #ifdef DMA2_Channel4
345+ case (uint32_t )DMA2_Channel4 :
346+ return DMA2_Channel4_IRQn ;
347+ #endif
348+ #ifdef DMA2_Channel5
349+ case (uint32_t )DMA2_Channel5 :
350+ return DMA2_Channel5_IRQn ;
351+ #endif
352+ #ifdef DMA2_Channel6
353+ case (uint32_t )DMA2_Channel6 :
354+ return DMA2_Channel6_IRQn ;
355+ #endif
356+ #ifdef DMA2_Channel7
357+ case (uint32_t )DMA2_Channel7 :
358+ return DMA2_Channel7_IRQn ;
359+ #endif
360+ #ifdef DMA2_Channel8
361+ case (uint32_t )DMA2_Channel8 :
362+ return DMA2_Channel8_IRQn ;
363+ #endif
364+ #ifdef DMA1_Stream0
365+ case (uint32_t )DMA1_Stream0 :
366+ return DMA1_Stream0_IRQn ;
367+ #endif
368+ #ifdef DMA1_Stream1
369+ case (uint32_t )DMA1_Stream1 :
370+ return DMA1_Stream1_IRQn ;
371+ #endif
372+ #ifdef DMA1_Stream2
373+ case (uint32_t )DMA1_Stream2 :
374+ return DMA1_Stream2_IRQn ;
375+ #endif
376+ #ifdef DMA1_Stream3
377+ case (uint32_t )DMA1_Stream3 :
378+ return DMA1_Stream3_IRQn ;
379+ #endif
380+ #ifdef DMA1_Stream4
381+ case (uint32_t )DMA1_Stream4 :
382+ return DMA1_Stream4_IRQn ;
383+ #endif
384+ #ifdef DMA1_Stream5
385+ case (uint32_t )DMA1_Stream5 :
386+ return DMA1_Stream5_IRQn ;
387+ #endif
388+ #ifdef DMA1_Stream6
389+ case (uint32_t )DMA1_Stream6 :
390+ return DMA1_Stream6_IRQn ;
391+ #endif
392+ #ifdef DMA1_Stream7
393+ case (uint32_t )DMA1_Stream7 :
394+ return DMA1_Stream7_IRQn ;
395+ #endif
396+ #ifdef DMA2_Stream0
397+ case (uint32_t )DMA2_Stream0 :
398+ return DMA2_Stream0_IRQn ;
399+ #endif
400+ #ifdef DMA2_Stream1
401+ case (uint32_t )DMA2_Stream1 :
402+ return DMA2_Stream1_IRQn ;
403+ #endif
404+ #ifdef DMA2_Stream2
405+ case (uint32_t )DMA2_Stream2 :
406+ return DMA2_Stream2_IRQn ;
407+ #endif
408+ #ifdef DMA2_Stream3
409+ case (uint32_t )DMA2_Stream3 :
410+ return DMA2_Stream3_IRQn ;
411+ #endif
412+ #ifdef DMA2_Stream4
413+ case (uint32_t )DMA2_Stream4 :
414+ return DMA2_Stream4_IRQn ;
415+ #endif
416+ #ifdef DMA2_Stream5
417+ case (uint32_t )DMA2_Stream5 :
418+ return DMA2_Stream5_IRQn ;
419+ #endif
420+ #ifdef DMA2_Stream6
421+ case (uint32_t )DMA2_Stream6 :
422+ return DMA2_Stream6_IRQn ;
423+ #endif
424+ #ifdef DMA2_Stream7
425+ case (uint32_t )DMA2_Stream7 :
426+ return DMA2_Stream7_IRQn ;
427+ #endif
428+ default :
429+ return NC ;
430+ }
431+ }
432+
290433/**
291434 * @brief This function will store the DMA handle in the appropriate slot
292435 * @param dma_handle : dma handle
0 commit comments