stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32H7xx_HAL_MDMA_H
22 #define STM32H7xx_HAL_MDMA_H
23 
24 #ifdef __cplusplus
25  extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32h7xx_hal_def.h"
30 
39 /* Exported types ------------------------------------------------------------*/
40 
49 typedef struct
50 {
51 
52  uint32_t Request;
55  uint32_t TransferTriggerMode;
59  uint32_t Priority;
62  uint32_t Endianness;
65  uint32_t SourceInc;
68  uint32_t DestinationInc;
71  uint32_t SourceDataSize;
74  uint32_t DestDataSize;
78  uint32_t DataAlignment;
81  uint32_t BufferTransferLength;
84  uint32_t SourceBurst;
92  uint32_t DestBurst;
100  int32_t SourceBlockAddressOffset;
107  int32_t DestBlockAddressOffset;
114 
122 typedef struct
123 {
124  __IO uint32_t CTCR;
125  __IO uint32_t CBNDTR;
126  __IO uint32_t CSAR;
127  __IO uint32_t CDAR;
128  __IO uint32_t CBRUR;
129  __IO uint32_t CLAR;
130  __IO uint32_t CTBR;
131  __IO uint32_t Reserved;
132  __IO uint32_t CMAR;
133  __IO uint32_t CMDR;
136 
141 typedef struct
142 {
144  uint32_t SrcAddress;
145  uint32_t DstAddress;
146  uint32_t BlockDataLength;
147  uint32_t BlockCount;
149  uint32_t PostRequestMaskAddress;
152  uint32_t PostRequestMaskData;
157 
158 
162 typedef enum
163 {
171 
175 typedef enum
176 {
183 
187 typedef enum
188 {
198 
199 
203 typedef struct __MDMA_HandleTypeDef
204 {
213  void *Parent;
215  void (* XferCpltCallback)( struct __MDMA_HandleTypeDef * hmdma);
217  void (* XferBufferCpltCallback)( struct __MDMA_HandleTypeDef * hmdma);
219  void (* XferBlockCpltCallback)( struct __MDMA_HandleTypeDef * hmdma);
221  void (* XferRepeatBlockCpltCallback)( struct __MDMA_HandleTypeDef * hmdma);
223  void (* XferErrorCallback)( struct __MDMA_HandleTypeDef * hmdma);
225  void (* XferAbortCallback)( struct __MDMA_HandleTypeDef * hmdma);
238  uint32_t LinkedListNodeCounter;
240  __IO uint32_t ErrorCode;
243 
248 /* Exported constants --------------------------------------------------------*/
249 
259 #define HAL_MDMA_ERROR_NONE ((uint32_t)0x00000000U)
260 #define HAL_MDMA_ERROR_READ_XFER ((uint32_t)0x00000001U)
261 #define HAL_MDMA_ERROR_WRITE_XFER ((uint32_t)0x00000002U)
262 #define HAL_MDMA_ERROR_MASK_DATA ((uint32_t)0x00000004U)
263 #define HAL_MDMA_ERROR_LINKED_LIST ((uint32_t)0x00000008U)
264 #define HAL_MDMA_ERROR_ALIGNMENT ((uint32_t)0x00000010U)
265 #define HAL_MDMA_ERROR_BLOCK_SIZE ((uint32_t)0x00000020U)
266 #define HAL_MDMA_ERROR_TIMEOUT ((uint32_t)0x00000040U)
267 #define HAL_MDMA_ERROR_NO_XFER ((uint32_t)0x00000080U)
268 #define HAL_MDMA_ERROR_BUSY ((uint32_t)0x00000100U)
279 #define MDMA_REQUEST_DMA1_Stream0_TC ((uint32_t)0x00000000U)
280 #define MDMA_REQUEST_DMA1_Stream1_TC ((uint32_t)0x00000001U)
281 #define MDMA_REQUEST_DMA1_Stream2_TC ((uint32_t)0x00000002U)
282 #define MDMA_REQUEST_DMA1_Stream3_TC ((uint32_t)0x00000003U)
283 #define MDMA_REQUEST_DMA1_Stream4_TC ((uint32_t)0x00000004U)
284 #define MDMA_REQUEST_DMA1_Stream5_TC ((uint32_t)0x00000005U)
285 #define MDMA_REQUEST_DMA1_Stream6_TC ((uint32_t)0x00000006U)
286 #define MDMA_REQUEST_DMA1_Stream7_TC ((uint32_t)0x00000007U)
287 #define MDMA_REQUEST_DMA2_Stream0_TC ((uint32_t)0x00000008U)
288 #define MDMA_REQUEST_DMA2_Stream1_TC ((uint32_t)0x00000009U)
289 #define MDMA_REQUEST_DMA2_Stream2_TC ((uint32_t)0x0000000AU)
290 #define MDMA_REQUEST_DMA2_Stream3_TC ((uint32_t)0x0000000BU)
291 #define MDMA_REQUEST_DMA2_Stream4_TC ((uint32_t)0x0000000CU)
292 #define MDMA_REQUEST_DMA2_Stream5_TC ((uint32_t)0x0000000DU)
293 #define MDMA_REQUEST_DMA2_Stream6_TC ((uint32_t)0x0000000EU)
294 #define MDMA_REQUEST_DMA2_Stream7_TC ((uint32_t)0x0000000FU)
295 #if defined (LTDC)
296 #define MDMA_REQUEST_LTDC_LINE_IT ((uint32_t)0x00000010U)
297 #endif /* LTDC */
298 #if defined (JPEG)
299 #define MDMA_REQUEST_JPEG_INFIFO_TH ((uint32_t)0x00000011U)
300 #define MDMA_REQUEST_JPEG_INFIFO_NF ((uint32_t)0x00000012U)
301 #define MDMA_REQUEST_JPEG_OUTFIFO_TH ((uint32_t)0x00000013U)
302 #define MDMA_REQUEST_JPEG_OUTFIFO_NE ((uint32_t)0x00000014U)
303 #define MDMA_REQUEST_JPEG_END_CONVERSION ((uint32_t)0x00000015U)
304 #endif /* JPEG */
305 #if defined (OCTOSPI1)
306 #define MDMA_REQUEST_OCTOSPI1_FIFO_TH ((uint32_t)0x00000016U)
307 #define MDMA_REQUEST_OCTOSPI1_TC ((uint32_t)0x00000017U)
308 #endif /* OCTOSPI1 */
309 #if defined (QUADSPI)
310 #define MDMA_REQUEST_QUADSPI_FIFO_TH ((uint32_t)0x00000016U)
311 #define MDMA_REQUEST_QUADSPI_TC ((uint32_t)0x00000017U)
312 #endif /* QUADSPI */
313 #define MDMA_REQUEST_DMA2D_CLUT_TC ((uint32_t)0x00000018U)
314 #define MDMA_REQUEST_DMA2D_TC ((uint32_t)0x00000019U)
315 #define MDMA_REQUEST_DMA2D_TW ((uint32_t)0x0000001AU)
317 #if defined (DSI)
318 #define MDMA_REQUEST_DSI_TEARING_EFFECT ((uint32_t)0x0000001BU)
319 #define MDMA_REQUEST_DSI_END_REFRESH ((uint32_t)0x0000001CU)
320 #endif /* DSI */
321 
322 #define MDMA_REQUEST_SDMMC1_END_DATA ((uint32_t)0x0000001DU)
324 #define MDMA_REQUEST_SDMMC1_DMA_ENDBUFFER ((uint32_t)0x0000001EU)
325 #define MDMA_REQUEST_SDMMC1_COMMAND_END ((uint32_t)0x0000001FU)
327 #if defined (OCTOSPI2)
328 #define MDMA_REQUEST_OCTOSPI2_FIFO_TH ((uint32_t)0x00000020U)
329 #define MDMA_REQUEST_OCTOSPI2_TC ((uint32_t)0x00000021U)
330 #endif /* OCTOSPI2 */
331 
332 #define MDMA_REQUEST_SW ((uint32_t)0x40000000U)
342 #define MDMA_BUFFER_TRANSFER ((uint32_t)0x00000000U)
343 #define MDMA_BLOCK_TRANSFER ((uint32_t)MDMA_CTCR_TRGM_0)
344 #define MDMA_REPEAT_BLOCK_TRANSFER ((uint32_t)MDMA_CTCR_TRGM_1)
345 #define MDMA_FULL_TRANSFER ((uint32_t)MDMA_CTCR_TRGM)
355 #define MDMA_PRIORITY_LOW ((uint32_t)0x00000000U)
356 #define MDMA_PRIORITY_MEDIUM ((uint32_t)MDMA_CCR_PL_0)
357 #define MDMA_PRIORITY_HIGH ((uint32_t)MDMA_CCR_PL_1)
358 #define MDMA_PRIORITY_VERY_HIGH ((uint32_t)MDMA_CCR_PL)
369 #define MDMA_LITTLE_ENDIANNESS_PRESERVE ((uint32_t)0x00000000U)
370 #define MDMA_LITTLE_BYTE_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_BEX)
371 #define MDMA_LITTLE_HALFWORD_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_HEX)
372 #define MDMA_LITTLE_WORD_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_WEX)
382 #define MDMA_SRC_INC_DISABLE ((uint32_t)0x00000000U)
383 #define MDMA_SRC_INC_BYTE ((uint32_t)MDMA_CTCR_SINC_1)
384 #define MDMA_SRC_INC_HALFWORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS_0)
385 #define MDMA_SRC_INC_WORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS_1)
386 #define MDMA_SRC_INC_DOUBLEWORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS)
387 #define MDMA_SRC_DEC_BYTE ((uint32_t)MDMA_CTCR_SINC)
388 #define MDMA_SRC_DEC_HALFWORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS_0)
389 #define MDMA_SRC_DEC_WORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS_1)
390 #define MDMA_SRC_DEC_DOUBLEWORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS)
400 #define MDMA_DEST_INC_DISABLE ((uint32_t)0x00000000U)
401 #define MDMA_DEST_INC_BYTE ((uint32_t)MDMA_CTCR_DINC_1)
402 #define MDMA_DEST_INC_HALFWORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS_0)
403 #define MDMA_DEST_INC_WORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS_1)
404 #define MDMA_DEST_INC_DOUBLEWORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS)
405 #define MDMA_DEST_DEC_BYTE ((uint32_t)MDMA_CTCR_DINC)
406 #define MDMA_DEST_DEC_HALFWORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS_0)
407 #define MDMA_DEST_DEC_WORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS_1)
408 #define MDMA_DEST_DEC_DOUBLEWORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS)
418 #define MDMA_SRC_DATASIZE_BYTE ((uint32_t)0x00000000U)
419 #define MDMA_SRC_DATASIZE_HALFWORD ((uint32_t)MDMA_CTCR_SSIZE_0)
420 #define MDMA_SRC_DATASIZE_WORD ((uint32_t)MDMA_CTCR_SSIZE_1)
421 #define MDMA_SRC_DATASIZE_DOUBLEWORD ((uint32_t)MDMA_CTCR_SSIZE)
431 #define MDMA_DEST_DATASIZE_BYTE ((uint32_t)0x00000000U)
432 #define MDMA_DEST_DATASIZE_HALFWORD ((uint32_t)MDMA_CTCR_DSIZE_0)
433 #define MDMA_DEST_DATASIZE_WORD ((uint32_t)MDMA_CTCR_DSIZE_1)
434 #define MDMA_DEST_DATASIZE_DOUBLEWORD ((uint32_t)MDMA_CTCR_DSIZE)
444 #define MDMA_DATAALIGN_PACKENABLE ((uint32_t)MDMA_CTCR_PKE)
446 #define MDMA_DATAALIGN_RIGHT ((uint32_t)0x00000000U)
447 #define MDMA_DATAALIGN_RIGHT_SIGNED ((uint32_t)MDMA_CTCR_PAM_0)
449 #define MDMA_DATAALIGN_LEFT ((uint32_t)MDMA_CTCR_PAM_1)
459 #define MDMA_SOURCE_BURST_SINGLE ((uint32_t)0x00000000U)
460 #define MDMA_SOURCE_BURST_2BEATS ((uint32_t)MDMA_CTCR_SBURST_0)
461 #define MDMA_SOURCE_BURST_4BEATS ((uint32_t)MDMA_CTCR_SBURST_1)
462 #define MDMA_SOURCE_BURST_8BEATS ((uint32_t)MDMA_CTCR_SBURST_0 | (uint32_t)MDMA_CTCR_SBURST_1)
463 #define MDMA_SOURCE_BURST_16BEATS ((uint32_t)MDMA_CTCR_SBURST_2)
464 #define MDMA_SOURCE_BURST_32BEATS ((uint32_t)MDMA_CTCR_SBURST_0 | (uint32_t)MDMA_CTCR_SBURST_2)
465 #define MDMA_SOURCE_BURST_64BEATS ((uint32_t)MDMA_CTCR_SBURST_1 | (uint32_t)MDMA_CTCR_SBURST_2)
466 #define MDMA_SOURCE_BURST_128BEATS ((uint32_t)MDMA_CTCR_SBURST)
476 #define MDMA_DEST_BURST_SINGLE ((uint32_t)0x00000000U)
477 #define MDMA_DEST_BURST_2BEATS ((uint32_t)MDMA_CTCR_DBURST_0)
478 #define MDMA_DEST_BURST_4BEATS ((uint32_t)MDMA_CTCR_DBURST_1)
479 #define MDMA_DEST_BURST_8BEATS ((uint32_t)MDMA_CTCR_DBURST_0 | (uint32_t)MDMA_CTCR_DBURST_1)
480 #define MDMA_DEST_BURST_16BEATS ((uint32_t)MDMA_CTCR_DBURST_2)
481 #define MDMA_DEST_BURST_32BEATS ((uint32_t)MDMA_CTCR_DBURST_0 | (uint32_t)MDMA_CTCR_DBURST_2)
482 #define MDMA_DEST_BURST_64BEATS ((uint32_t)MDMA_CTCR_DBURST_1 | (uint32_t)MDMA_CTCR_DBURST_2)
483 #define MDMA_DEST_BURST_128BEATS ((uint32_t)MDMA_CTCR_DBURST)
493 #define MDMA_IT_TE ((uint32_t)MDMA_CCR_TEIE)
494 #define MDMA_IT_CTC ((uint32_t)MDMA_CCR_CTCIE)
495 #define MDMA_IT_BRT ((uint32_t)MDMA_CCR_BRTIE)
496 #define MDMA_IT_BT ((uint32_t)MDMA_CCR_BTIE)
497 #define MDMA_IT_BFTC ((uint32_t)MDMA_CCR_TCIE)
507 #define MDMA_FLAG_TE ((uint32_t)MDMA_CISR_TEIF)
508 #define MDMA_FLAG_CTC ((uint32_t)MDMA_CISR_CTCIF)
509 #define MDMA_FLAG_BRT ((uint32_t)MDMA_CISR_BRTIF)
510 #define MDMA_FLAG_BT ((uint32_t)MDMA_CISR_BTIF)
511 #define MDMA_FLAG_BFTC ((uint32_t)MDMA_CISR_TCIF)
512 #define MDMA_FLAG_CRQA ((uint32_t)MDMA_CISR_CRQA)
522 /* Exported macro ------------------------------------------------------------*/
523 
533 #define __HAL_MDMA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR |= MDMA_CCR_EN)
534 
540 #define __HAL_MDMA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR &= ~MDMA_CCR_EN)
541 
555 #define __HAL_MDMA_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CISR & (__FLAG__))
556 
569 #define __HAL_MDMA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CIFCR = (__FLAG__))
570 
583 #define __HAL_MDMA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR |= (__INTERRUPT__))
584 
597 #define __HAL_MDMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR &= ~(__INTERRUPT__))
598 
610 #define __HAL_MDMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CCR & (__INTERRUPT__)))
611 
618 #define __HAL_MDMA_SET_COUNTER(__HANDLE__, __COUNTER__) ((__HANDLE__)->Instance->CBNDTR |= ((__COUNTER__) & MDMA_CBNDTR_BNDT))
619 
625 #define __HAL_MDMA_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CBNDTR & MDMA_CBNDTR_BNDT)
626 
631 /* Exported functions --------------------------------------------------------*/
636 /* Initialization and de-initialization functions *****************************/
643 HAL_StatusTypeDef HAL_MDMA_ConfigPostRequestMask(MDMA_HandleTypeDef *hmdma, uint32_t MaskAddress, uint32_t MaskData);
644 
647 
652 /* Linked list operation functions ********************************************/
663 
664 
669 /* IO operation functions *****************************************************/
674 HAL_StatusTypeDef HAL_MDMA_Start (MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount);
675 HAL_StatusTypeDef HAL_MDMA_Start_IT(MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount);
681 
686 /* Peripheral State and Error functions ***************************************/
692 uint32_t HAL_MDMA_GetError(MDMA_HandleTypeDef *hmdma);
693 
702 /* Private types -------------------------------------------------------------*/
711 /* Private defines -----------------------------------------------------------*/
720 /* Private variables ---------------------------------------------------------*/
729 /* Private constants ---------------------------------------------------------*/
738 /* Private macros ------------------------------------------------------------*/
743 #define IS_MDMA_LEVEL_COMPLETE(__LEVEL__) (((__LEVEL__) == HAL_MDMA_FULL_TRANSFER ) || \
744  ((__LEVEL__) == HAL_MDMA_BUFFER_TRANSFER )|| \
745  ((__LEVEL__) == HAL_MDMA_BLOCK_TRANSFER ) || \
746  ((__LEVEL__) == HAL_MDMA_REPEAT_BLOCK_TRANSFER ))
747 
748 
749 #define IS_MDMA_PRIORITY(__PRIORITY__) (((__PRIORITY__) == MDMA_PRIORITY_LOW ) || \
750  ((__PRIORITY__) == MDMA_PRIORITY_MEDIUM) || \
751  ((__PRIORITY__) == MDMA_PRIORITY_HIGH) || \
752  ((__PRIORITY__) == MDMA_PRIORITY_VERY_HIGH))
753 
754 #define IS_MDMA_ENDIANNESS_MODE(__ENDIANNESS__) (((__ENDIANNESS__) == MDMA_LITTLE_ENDIANNESS_PRESERVE ) || \
755  ((__ENDIANNESS__) == MDMA_LITTLE_BYTE_ENDIANNESS_EXCHANGE) || \
756  ((__ENDIANNESS__) == MDMA_LITTLE_HALFWORD_ENDIANNESS_EXCHANGE) || \
757  ((__ENDIANNESS__) == MDMA_LITTLE_WORD_ENDIANNESS_EXCHANGE))
758 
759 
760 #if defined (OCTOSPI2)
761 #define IS_MDMA_REQUEST(__REQUEST__) (((__REQUEST__) == MDMA_REQUEST_SW ) || ((__REQUEST__) <= MDMA_REQUEST_OCTOSPI2_TC))
762 #else
763 #define IS_MDMA_REQUEST(__REQUEST__) (((__REQUEST__) == MDMA_REQUEST_SW ) || ((__REQUEST__) <= MDMA_REQUEST_SDMMC1_COMMAND_END))
764 #endif /* OCTOSPI2 */
765 
766 #define IS_MDMA_SOURCE_INC(__INC__) (((__INC__) == MDMA_SRC_INC_DISABLE ) || \
767  ((__INC__) == MDMA_SRC_INC_BYTE ) || \
768  ((__INC__) == MDMA_SRC_INC_HALFWORD ) || \
769  ((__INC__) == MDMA_SRC_INC_WORD ) || \
770  ((__INC__) == MDMA_SRC_INC_DOUBLEWORD) || \
771  ((__INC__) == MDMA_SRC_DEC_BYTE) || \
772  ((__INC__) == MDMA_SRC_DEC_HALFWORD) || \
773  ((__INC__) == MDMA_SRC_DEC_WORD) || \
774  ((__INC__) == MDMA_SRC_DEC_DOUBLEWORD))
775 
776 #define IS_MDMA_DESTINATION_INC(__INC__) (((__INC__) == MDMA_DEST_INC_DISABLE ) || \
777  ((__INC__) == MDMA_DEST_INC_BYTE ) || \
778  ((__INC__) == MDMA_DEST_INC_HALFWORD ) || \
779  ((__INC__) == MDMA_DEST_INC_WORD ) || \
780  ((__INC__) == MDMA_DEST_INC_DOUBLEWORD) || \
781  ((__INC__) == MDMA_DEST_DEC_BYTE) || \
782  ((__INC__) == MDMA_DEST_DEC_HALFWORD) || \
783  ((__INC__) == MDMA_DEST_DEC_WORD) || \
784  ((__INC__) == MDMA_DEST_DEC_DOUBLEWORD))
785 
786 #define IS_MDMA_SOURCE_DATASIZE(__SIZE__) (((__SIZE__) == MDMA_SRC_DATASIZE_BYTE ) || \
787  ((__SIZE__) == MDMA_SRC_DATASIZE_HALFWORD ) || \
788  ((__SIZE__) == MDMA_SRC_DATASIZE_WORD ) || \
789  ((__SIZE__) == MDMA_SRC_DATASIZE_DOUBLEWORD))
790 
791 #define IS_MDMA_DESTINATION_DATASIZE(__SIZE__) (((__SIZE__) == MDMA_DEST_DATASIZE_BYTE ) || \
792  ((__SIZE__) == MDMA_DEST_DATASIZE_HALFWORD ) || \
793  ((__SIZE__) == MDMA_DEST_DATASIZE_WORD ) || \
794  ((__SIZE__) == MDMA_DEST_DATASIZE_DOUBLEWORD))
795 
796 #define IS_MDMA_DATA_ALIGNMENT(__ALIGNMENT__) (((__ALIGNMENT__) == MDMA_DATAALIGN_PACKENABLE ) || \
797  ((__ALIGNMENT__) == MDMA_DATAALIGN_RIGHT ) || \
798  ((__ALIGNMENT__) == MDMA_DATAALIGN_RIGHT_SIGNED ) || \
799  ((__ALIGNMENT__) == MDMA_DATAALIGN_LEFT))
800 
801 
802 #define IS_MDMA_SOURCE_BURST(__BURST__) (((__BURST__) == MDMA_SOURCE_BURST_SINGLE ) || \
803  ((__BURST__) == MDMA_SOURCE_BURST_2BEATS ) || \
804  ((__BURST__) == MDMA_SOURCE_BURST_4BEATS ) || \
805  ((__BURST__) == MDMA_SOURCE_BURST_8BEATS) || \
806  ((__BURST__) == MDMA_SOURCE_BURST_16BEATS) || \
807  ((__BURST__) == MDMA_SOURCE_BURST_32BEATS) || \
808  ((__BURST__) == MDMA_SOURCE_BURST_64BEATS) || \
809  ((__BURST__) == MDMA_SOURCE_BURST_128BEATS))
810 
811 
812 #define IS_MDMA_DESTINATION_BURST(__BURST__) (((__BURST__) == MDMA_DEST_BURST_SINGLE ) || \
813  ((__BURST__) == MDMA_DEST_BURST_2BEATS ) || \
814  ((__BURST__) == MDMA_DEST_BURST_4BEATS ) || \
815  ((__BURST__) == MDMA_DEST_BURST_8BEATS) || \
816  ((__BURST__) == MDMA_DEST_BURST_16BEATS) || \
817  ((__BURST__) == MDMA_DEST_BURST_32BEATS) || \
818  ((__BURST__) == MDMA_DEST_BURST_64BEATS) || \
819  ((__BURST__) == MDMA_DEST_BURST_128BEATS))
820 
821  #define IS_MDMA_TRANSFER_TRIGGER_MODE(__MODE__) (((__MODE__) == MDMA_BUFFER_TRANSFER ) || \
822  ((__MODE__) == MDMA_BLOCK_TRANSFER ) || \
823  ((__MODE__) == MDMA_REPEAT_BLOCK_TRANSFER ) || \
824  ((__MODE__) == MDMA_FULL_TRANSFER))
825 
826 #define IS_MDMA_BUFFER_TRANSFER_LENGTH(__LENGTH__) (((__LENGTH__) >= 0x00000001U) && ((__LENGTH__) < 0x000000FFU))
827 
828 #define IS_MDMA_BLOCK_COUNT(__COUNT__) (((__COUNT__) > 0U ) && ((__COUNT__) <= 4096U))
829 
830 #define IS_MDMA_TRANSFER_LENGTH(SIZE) (((SIZE) > 0U) && ((SIZE) <= 65536U))
831 
832 #define IS_MDMA_BLOCK_ADDR_OFFSET(__BLOCK_ADD_OFFSET__) (((__BLOCK_ADD_OFFSET__) > (-65536)) && ((__BLOCK_ADD_OFFSET__) < 65536))
833 
838 /* Private functions prototypes ----------------------------------------------*/
847 /* Private functions ---------------------------------------------------------*/
864 #ifdef __cplusplus
865 }
866 #endif
867 
868 #endif /* STM32H7xx_HAL_MDMA_H */
869 
870 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
__MDMA_HandleTypeDef::LinkedListNodeCounter
uint32_t LinkedListNodeCounter
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:238
HAL_MDMA_LinkedList_CreateNode
HAL_StatusTypeDef HAL_MDMA_LinkedList_CreateNode(MDMA_LinkNodeTypeDef *pNode, MDMA_LinkNodeConfTypeDef *pNodeConfig)
HAL_MDMA_REPEAT_BLOCK_TRANSFER
@ HAL_MDMA_REPEAT_BLOCK_TRANSFER
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:180
__IO
#define __IO
Definition: imxrt1050/imxrt1050-evkb/CMSIS/core_cm7.h:237
Init
napi_value Init(napi_env env, napi_value exports)
Definition: porcupine/demo/c/pvrecorder/node/pv_recorder_napi.c:197
HAL_StatusTypeDef
HAL_StatusTypeDef
HAL Status structures definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:40
__MDMA_HandleTypeDef::XferAbortCallback
void(* XferAbortCallback)(struct __MDMA_HandleTypeDef *hmdma)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:225
HAL_MDMA_IRQHandler
void HAL_MDMA_IRQHandler(MDMA_HandleTypeDef *hmdma)
__MDMA_HandleTypeDef::XferCpltCallback
void(* XferCpltCallback)(struct __MDMA_HandleTypeDef *hmdma)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:215
HAL_MDMA_XFER_REPBLOCKCPLT_CB_ID
@ HAL_MDMA_XFER_REPBLOCKCPLT_CB_ID
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:192
MDMA_LinkNodeConfTypeDef
HAL MDMA linked list node configuration structure definition.
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:141
HAL_MDMA_STATE_RESET
@ HAL_MDMA_STATE_RESET
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:164
MDMA_LinkNodeTypeDef
HAL MDMA linked list node structure definition.
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:122
HAL_MDMA_DeInit
HAL_StatusTypeDef HAL_MDMA_DeInit(MDMA_HandleTypeDef *hmdma)
HAL_MDMA_XFER_ERROR_CB_ID
@ HAL_MDMA_XFER_ERROR_CB_ID
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:193
HAL_MDMA_GenerateSWRequest
HAL_StatusTypeDef HAL_MDMA_GenerateSWRequest(MDMA_HandleTypeDef *hmdma)
HAL_MDMA_LinkedList_EnableCircularMode
HAL_StatusTypeDef HAL_MDMA_LinkedList_EnableCircularMode(MDMA_HandleTypeDef *hmdma)
HAL_MDMA_XFER_CPLT_CB_ID
@ HAL_MDMA_XFER_CPLT_CB_ID
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:189
HAL_LockTypeDef
HAL_LockTypeDef
HAL Lock structures definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:51
HAL_MDMA_LinkedList_AddNode
HAL_StatusTypeDef HAL_MDMA_LinkedList_AddNode(MDMA_HandleTypeDef *hmdma, MDMA_LinkNodeTypeDef *pNewNode, MDMA_LinkNodeTypeDef *pPrevNode)
HAL_MDMA_GetError
uint32_t HAL_MDMA_GetError(MDMA_HandleTypeDef *hmdma)
HAL_MDMA_BUFFER_TRANSFER
@ HAL_MDMA_BUFFER_TRANSFER
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:178
HAL_MDMA_STATE_ERROR
@ HAL_MDMA_STATE_ERROR
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:167
HAL_MDMA_XFER_ALL_CB_ID
@ HAL_MDMA_XFER_ALL_CB_ID
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:195
__MDMA_HandleTypeDef::XferBufferCpltCallback
void(* XferBufferCpltCallback)(struct __MDMA_HandleTypeDef *hmdma)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:217
HAL_MDMA_CallbackIDTypeDef
HAL_MDMA_CallbackIDTypeDef
HAL MDMA Callbacks IDs structure definition.
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:187
HAL_MDMA_XFER_ABORT_CB_ID
@ HAL_MDMA_XFER_ABORT_CB_ID
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:194
__MDMA_HandleTypeDef::FirstLinkedListNodeAddress
MDMA_LinkNodeTypeDef * FirstLinkedListNodeAddress
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:228
HAL_MDMA_Abort_IT
HAL_StatusTypeDef HAL_MDMA_Abort_IT(MDMA_HandleTypeDef *hmdma)
HAL_MDMA_LevelCompleteTypeDef
HAL_MDMA_LevelCompleteTypeDef
HAL MDMA Level Complete structure definition.
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:175
HAL_MDMA_StateTypeDef
HAL_MDMA_StateTypeDef
HAL MDMA State structure definition.
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:162
__MDMA_HandleTypeDef::Init
MDMA_InitTypeDef Init
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:207
HAL_MDMA_Start
HAL_StatusTypeDef HAL_MDMA_Start(MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount)
MDMA_InitTypeDef
MDMA Configuration Structure definition.
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:49
HAL_MDMA_UnRegisterCallback
HAL_StatusTypeDef HAL_MDMA_UnRegisterCallback(MDMA_HandleTypeDef *hmdma, HAL_MDMA_CallbackIDTypeDef CallbackID)
HAL_MDMA_XFER_BLOCKCPLT_CB_ID
@ HAL_MDMA_XFER_BLOCKCPLT_CB_ID
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:191
HAL_MDMA_Abort
HAL_StatusTypeDef HAL_MDMA_Abort(MDMA_HandleTypeDef *hmdma)
MDMA_HandleTypeDef
struct __MDMA_HandleTypeDef MDMA_HandleTypeDef
MDMA handle Structure definition.
HAL_MDMA_GetState
HAL_MDMA_StateTypeDef HAL_MDMA_GetState(MDMA_HandleTypeDef *hmdma)
__MDMA_HandleTypeDef::Lock
HAL_LockTypeDef Lock
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:209
__MDMA_HandleTypeDef
MDMA handle Structure definition.
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:203
HAL_MDMA_Init
HAL_StatusTypeDef HAL_MDMA_Init(MDMA_HandleTypeDef *hmdma)
__MDMA_HandleTypeDef::LastLinkedListNodeAddress
MDMA_LinkNodeTypeDef * LastLinkedListNodeAddress
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:234
__MDMA_HandleTypeDef::XferRepeatBlockCpltCallback
void(* XferRepeatBlockCpltCallback)(struct __MDMA_HandleTypeDef *hmdma)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:221
HAL_MDMA_LinkedList_DisableCircularMode
HAL_StatusTypeDef HAL_MDMA_LinkedList_DisableCircularMode(MDMA_HandleTypeDef *hmdma)
HAL_MDMA_FULL_TRANSFER
@ HAL_MDMA_FULL_TRANSFER
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:177
__MDMA_HandleTypeDef::XferErrorCallback
void(* XferErrorCallback)(struct __MDMA_HandleTypeDef *hmdma)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:223
HAL_MDMA_STATE_READY
@ HAL_MDMA_STATE_READY
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:165
MDMA_Channel_TypeDef
Definition: stm32h735xx.h:668
HAL_MDMA_LinkedList_RemoveNode
HAL_StatusTypeDef HAL_MDMA_LinkedList_RemoveNode(MDMA_HandleTypeDef *hmdma, MDMA_LinkNodeTypeDef *pNode)
HAL_MDMA_STATE_BUSY
@ HAL_MDMA_STATE_BUSY
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:166
HAL_MDMA_PollForTransfer
HAL_StatusTypeDef HAL_MDMA_PollForTransfer(MDMA_HandleTypeDef *hmdma, HAL_MDMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
HAL_MDMA_STATE_ABORT
@ HAL_MDMA_STATE_ABORT
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:168
stm32h7xx_hal_def.h
This file contains HAL common defines, enumeration, macros and structures definitions.
__MDMA_HandleTypeDef::Instance
MDMA_Channel_TypeDef * Instance
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:205
__MDMA_HandleTypeDef::ErrorCode
__IO uint32_t ErrorCode
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:240
HAL_MDMA_BLOCK_TRANSFER
@ HAL_MDMA_BLOCK_TRANSFER
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:179
HAL_MDMA_ConfigPostRequestMask
HAL_StatusTypeDef HAL_MDMA_ConfigPostRequestMask(MDMA_HandleTypeDef *hmdma, uint32_t MaskAddress, uint32_t MaskData)
__MDMA_HandleTypeDef::Parent
void * Parent
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:213
__MDMA_HandleTypeDef::XferBlockCpltCallback
void(* XferBlockCpltCallback)(struct __MDMA_HandleTypeDef *hmdma)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:219
HAL_MDMA_XFER_BUFFERCPLT_CB_ID
@ HAL_MDMA_XFER_BUFFERCPLT_CB_ID
Definition: stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:190
__MDMA_HandleTypeDef::State
__IO HAL_MDMA_StateTypeDef State
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h:211
HAL_MDMA_RegisterCallback
HAL_StatusTypeDef HAL_MDMA_RegisterCallback(MDMA_HandleTypeDef *hmdma, HAL_MDMA_CallbackIDTypeDef CallbackID, void(*pCallback)(MDMA_HandleTypeDef *_hmdma))
HAL_MDMA_Start_IT
HAL_StatusTypeDef HAL_MDMA_Start_IT(MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount)


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:14:54