20#ifndef STM32H7xx_HAL_MDMA_H
21#define STM32H7xx_HAL_MDMA_H
258#define HAL_MDMA_ERROR_NONE ((uint32_t)0x00000000U)
259#define HAL_MDMA_ERROR_READ_XFER ((uint32_t)0x00000001U)
260#define HAL_MDMA_ERROR_WRITE_XFER ((uint32_t)0x00000002U)
261#define HAL_MDMA_ERROR_MASK_DATA ((uint32_t)0x00000004U)
262#define HAL_MDMA_ERROR_LINKED_LIST ((uint32_t)0x00000008U)
263#define HAL_MDMA_ERROR_ALIGNMENT ((uint32_t)0x00000010U)
264#define HAL_MDMA_ERROR_BLOCK_SIZE ((uint32_t)0x00000020U)
265#define HAL_MDMA_ERROR_TIMEOUT ((uint32_t)0x00000040U)
266#define HAL_MDMA_ERROR_NO_XFER ((uint32_t)0x00000080U)
267#define HAL_MDMA_ERROR_BUSY ((uint32_t)0x00000100U)
278#define MDMA_REQUEST_DMA1_Stream0_TC ((uint32_t)0x00000000U)
279#define MDMA_REQUEST_DMA1_Stream1_TC ((uint32_t)0x00000001U)
280#define MDMA_REQUEST_DMA1_Stream2_TC ((uint32_t)0x00000002U)
281#define MDMA_REQUEST_DMA1_Stream3_TC ((uint32_t)0x00000003U)
282#define MDMA_REQUEST_DMA1_Stream4_TC ((uint32_t)0x00000004U)
283#define MDMA_REQUEST_DMA1_Stream5_TC ((uint32_t)0x00000005U)
284#define MDMA_REQUEST_DMA1_Stream6_TC ((uint32_t)0x00000006U)
285#define MDMA_REQUEST_DMA1_Stream7_TC ((uint32_t)0x00000007U)
286#define MDMA_REQUEST_DMA2_Stream0_TC ((uint32_t)0x00000008U)
287#define MDMA_REQUEST_DMA2_Stream1_TC ((uint32_t)0x00000009U)
288#define MDMA_REQUEST_DMA2_Stream2_TC ((uint32_t)0x0000000AU)
289#define MDMA_REQUEST_DMA2_Stream3_TC ((uint32_t)0x0000000BU)
290#define MDMA_REQUEST_DMA2_Stream4_TC ((uint32_t)0x0000000CU)
291#define MDMA_REQUEST_DMA2_Stream5_TC ((uint32_t)0x0000000DU)
292#define MDMA_REQUEST_DMA2_Stream6_TC ((uint32_t)0x0000000EU)
293#define MDMA_REQUEST_DMA2_Stream7_TC ((uint32_t)0x0000000FU)
295#define MDMA_REQUEST_LTDC_LINE_IT ((uint32_t)0x00000010U)
298#define MDMA_REQUEST_JPEG_INFIFO_TH ((uint32_t)0x00000011U)
299#define MDMA_REQUEST_JPEG_INFIFO_NF ((uint32_t)0x00000012U)
300#define MDMA_REQUEST_JPEG_OUTFIFO_TH ((uint32_t)0x00000013U)
301#define MDMA_REQUEST_JPEG_OUTFIFO_NE ((uint32_t)0x00000014U)
302#define MDMA_REQUEST_JPEG_END_CONVERSION ((uint32_t)0x00000015U)
304#if defined (OCTOSPI1)
305#define MDMA_REQUEST_OCTOSPI1_FIFO_TH ((uint32_t)0x00000016U)
306#define MDMA_REQUEST_OCTOSPI1_TC ((uint32_t)0x00000017U)
309#define MDMA_REQUEST_QUADSPI_FIFO_TH ((uint32_t)0x00000016U)
310#define MDMA_REQUEST_QUADSPI_TC ((uint32_t)0x00000017U)
312#define MDMA_REQUEST_DMA2D_CLUT_TC ((uint32_t)0x00000018U)
313#define MDMA_REQUEST_DMA2D_TC ((uint32_t)0x00000019U)
314#define MDMA_REQUEST_DMA2D_TW ((uint32_t)0x0000001AU)
317#define MDMA_REQUEST_DSI_TEARING_EFFECT ((uint32_t)0x0000001BU)
318#define MDMA_REQUEST_DSI_END_REFRESH ((uint32_t)0x0000001CU)
321#define MDMA_REQUEST_SDMMC1_END_DATA ((uint32_t)0x0000001DU)
323#define MDMA_REQUEST_SDMMC1_DMA_ENDBUFFER ((uint32_t)0x0000001EU)
324#define MDMA_REQUEST_SDMMC1_COMMAND_END ((uint32_t)0x0000001FU)
326#if defined (OCTOSPI2)
327#define MDMA_REQUEST_OCTOSPI2_FIFO_TH ((uint32_t)0x00000020U)
328#define MDMA_REQUEST_OCTOSPI2_TC ((uint32_t)0x00000021U)
331#define MDMA_REQUEST_SW ((uint32_t)0x40000000U)
341#define MDMA_BUFFER_TRANSFER ((uint32_t)0x00000000U)
342#define MDMA_BLOCK_TRANSFER ((uint32_t)MDMA_CTCR_TRGM_0)
343#define MDMA_REPEAT_BLOCK_TRANSFER ((uint32_t)MDMA_CTCR_TRGM_1)
344#define MDMA_FULL_TRANSFER ((uint32_t)MDMA_CTCR_TRGM)
354#define MDMA_PRIORITY_LOW ((uint32_t)0x00000000U)
355#define MDMA_PRIORITY_MEDIUM ((uint32_t)MDMA_CCR_PL_0)
356#define MDMA_PRIORITY_HIGH ((uint32_t)MDMA_CCR_PL_1)
357#define MDMA_PRIORITY_VERY_HIGH ((uint32_t)MDMA_CCR_PL)
368#define MDMA_LITTLE_ENDIANNESS_PRESERVE ((uint32_t)0x00000000U)
369#define MDMA_LITTLE_BYTE_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_BEX)
370#define MDMA_LITTLE_HALFWORD_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_HEX)
371#define MDMA_LITTLE_WORD_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_WEX)
381#define MDMA_SRC_INC_DISABLE ((uint32_t)0x00000000U)
382#define MDMA_SRC_INC_BYTE ((uint32_t)MDMA_CTCR_SINC_1)
383#define MDMA_SRC_INC_HALFWORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS_0)
384#define MDMA_SRC_INC_WORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS_1)
385#define MDMA_SRC_INC_DOUBLEWORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS)
386#define MDMA_SRC_DEC_BYTE ((uint32_t)MDMA_CTCR_SINC)
387#define MDMA_SRC_DEC_HALFWORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS_0)
388#define MDMA_SRC_DEC_WORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS_1)
389#define MDMA_SRC_DEC_DOUBLEWORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS)
399#define MDMA_DEST_INC_DISABLE ((uint32_t)0x00000000U)
400#define MDMA_DEST_INC_BYTE ((uint32_t)MDMA_CTCR_DINC_1)
401#define MDMA_DEST_INC_HALFWORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS_0)
402#define MDMA_DEST_INC_WORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS_1)
403#define MDMA_DEST_INC_DOUBLEWORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS)
404#define MDMA_DEST_DEC_BYTE ((uint32_t)MDMA_CTCR_DINC)
405#define MDMA_DEST_DEC_HALFWORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS_0)
406#define MDMA_DEST_DEC_WORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS_1)
407#define MDMA_DEST_DEC_DOUBLEWORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS)
417#define MDMA_SRC_DATASIZE_BYTE ((uint32_t)0x00000000U)
418#define MDMA_SRC_DATASIZE_HALFWORD ((uint32_t)MDMA_CTCR_SSIZE_0)
419#define MDMA_SRC_DATASIZE_WORD ((uint32_t)MDMA_CTCR_SSIZE_1)
420#define MDMA_SRC_DATASIZE_DOUBLEWORD ((uint32_t)MDMA_CTCR_SSIZE)
430#define MDMA_DEST_DATASIZE_BYTE ((uint32_t)0x00000000U)
431#define MDMA_DEST_DATASIZE_HALFWORD ((uint32_t)MDMA_CTCR_DSIZE_0)
432#define MDMA_DEST_DATASIZE_WORD ((uint32_t)MDMA_CTCR_DSIZE_1)
433#define MDMA_DEST_DATASIZE_DOUBLEWORD ((uint32_t)MDMA_CTCR_DSIZE)
443#define MDMA_DATAALIGN_PACKENABLE ((uint32_t)MDMA_CTCR_PKE)
445#define MDMA_DATAALIGN_RIGHT ((uint32_t)0x00000000U)
446#define MDMA_DATAALIGN_RIGHT_SIGNED ((uint32_t)MDMA_CTCR_PAM_0)
448#define MDMA_DATAALIGN_LEFT ((uint32_t)MDMA_CTCR_PAM_1)
458#define MDMA_SOURCE_BURST_SINGLE ((uint32_t)0x00000000U)
459#define MDMA_SOURCE_BURST_2BEATS ((uint32_t)MDMA_CTCR_SBURST_0)
460#define MDMA_SOURCE_BURST_4BEATS ((uint32_t)MDMA_CTCR_SBURST_1)
461#define MDMA_SOURCE_BURST_8BEATS ((uint32_t)MDMA_CTCR_SBURST_0 | (uint32_t)MDMA_CTCR_SBURST_1)
462#define MDMA_SOURCE_BURST_16BEATS ((uint32_t)MDMA_CTCR_SBURST_2)
463#define MDMA_SOURCE_BURST_32BEATS ((uint32_t)MDMA_CTCR_SBURST_0 | (uint32_t)MDMA_CTCR_SBURST_2)
464#define MDMA_SOURCE_BURST_64BEATS ((uint32_t)MDMA_CTCR_SBURST_1 | (uint32_t)MDMA_CTCR_SBURST_2)
465#define MDMA_SOURCE_BURST_128BEATS ((uint32_t)MDMA_CTCR_SBURST)
475#define MDMA_DEST_BURST_SINGLE ((uint32_t)0x00000000U)
476#define MDMA_DEST_BURST_2BEATS ((uint32_t)MDMA_CTCR_DBURST_0)
477#define MDMA_DEST_BURST_4BEATS ((uint32_t)MDMA_CTCR_DBURST_1)
478#define MDMA_DEST_BURST_8BEATS ((uint32_t)MDMA_CTCR_DBURST_0 | (uint32_t)MDMA_CTCR_DBURST_1)
479#define MDMA_DEST_BURST_16BEATS ((uint32_t)MDMA_CTCR_DBURST_2)
480#define MDMA_DEST_BURST_32BEATS ((uint32_t)MDMA_CTCR_DBURST_0 | (uint32_t)MDMA_CTCR_DBURST_2)
481#define MDMA_DEST_BURST_64BEATS ((uint32_t)MDMA_CTCR_DBURST_1 | (uint32_t)MDMA_CTCR_DBURST_2)
482#define MDMA_DEST_BURST_128BEATS ((uint32_t)MDMA_CTCR_DBURST)
492#define MDMA_IT_TE ((uint32_t)MDMA_CCR_TEIE)
493#define MDMA_IT_CTC ((uint32_t)MDMA_CCR_CTCIE)
494#define MDMA_IT_BRT ((uint32_t)MDMA_CCR_BRTIE)
495#define MDMA_IT_BT ((uint32_t)MDMA_CCR_BTIE)
496#define MDMA_IT_BFTC ((uint32_t)MDMA_CCR_TCIE)
506#define MDMA_FLAG_TE ((uint32_t)MDMA_CISR_TEIF)
507#define MDMA_FLAG_CTC ((uint32_t)MDMA_CISR_CTCIF)
508#define MDMA_FLAG_BRT ((uint32_t)MDMA_CISR_BRTIF)
509#define MDMA_FLAG_BT ((uint32_t)MDMA_CISR_BTIF)
510#define MDMA_FLAG_BFTC ((uint32_t)MDMA_CISR_TCIF)
511#define MDMA_FLAG_CRQA ((uint32_t)MDMA_CISR_CRQA)
532#define __HAL_MDMA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR |= MDMA_CCR_EN)
539#define __HAL_MDMA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR &= ~MDMA_CCR_EN)
554#define __HAL_MDMA_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CISR & (__FLAG__))
568#define __HAL_MDMA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CIFCR = (__FLAG__))
582#define __HAL_MDMA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR |= (__INTERRUPT__))
596#define __HAL_MDMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR &= ~(__INTERRUPT__))
609#define __HAL_MDMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CCR & (__INTERRUPT__)))
617#define __HAL_MDMA_SET_COUNTER(__HANDLE__, __COUNTER__) ((__HANDLE__)->Instance->CBNDTR |= ((__COUNTER__) & MDMA_CBNDTR_BNDT))
624#define __HAL_MDMA_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CBNDTR & MDMA_CBNDTR_BNDT)
742#define IS_MDMA_LEVEL_COMPLETE(__LEVEL__) (((__LEVEL__) == HAL_MDMA_FULL_TRANSFER ) || \
743 ((__LEVEL__) == HAL_MDMA_BUFFER_TRANSFER )|| \
744 ((__LEVEL__) == HAL_MDMA_BLOCK_TRANSFER ) || \
745 ((__LEVEL__) == HAL_MDMA_REPEAT_BLOCK_TRANSFER ))
748#define IS_MDMA_PRIORITY(__PRIORITY__) (((__PRIORITY__) == MDMA_PRIORITY_LOW ) || \
749 ((__PRIORITY__) == MDMA_PRIORITY_MEDIUM) || \
750 ((__PRIORITY__) == MDMA_PRIORITY_HIGH) || \
751 ((__PRIORITY__) == MDMA_PRIORITY_VERY_HIGH))
753#define IS_MDMA_ENDIANNESS_MODE(__ENDIANNESS__) (((__ENDIANNESS__) == MDMA_LITTLE_ENDIANNESS_PRESERVE ) || \
754 ((__ENDIANNESS__) == MDMA_LITTLE_BYTE_ENDIANNESS_EXCHANGE) || \
755 ((__ENDIANNESS__) == MDMA_LITTLE_HALFWORD_ENDIANNESS_EXCHANGE) || \
756 ((__ENDIANNESS__) == MDMA_LITTLE_WORD_ENDIANNESS_EXCHANGE))
759#if defined (OCTOSPI2)
760#define IS_MDMA_REQUEST(__REQUEST__) (((__REQUEST__) == MDMA_REQUEST_SW ) || ((__REQUEST__) <= MDMA_REQUEST_OCTOSPI2_TC))
762#define IS_MDMA_REQUEST(__REQUEST__) (((__REQUEST__) == MDMA_REQUEST_SW ) || ((__REQUEST__) <= MDMA_REQUEST_SDMMC1_COMMAND_END))
765#define IS_MDMA_SOURCE_INC(__INC__) (((__INC__) == MDMA_SRC_INC_DISABLE ) || \
766 ((__INC__) == MDMA_SRC_INC_BYTE ) || \
767 ((__INC__) == MDMA_SRC_INC_HALFWORD ) || \
768 ((__INC__) == MDMA_SRC_INC_WORD ) || \
769 ((__INC__) == MDMA_SRC_INC_DOUBLEWORD) || \
770 ((__INC__) == MDMA_SRC_DEC_BYTE) || \
771 ((__INC__) == MDMA_SRC_DEC_HALFWORD) || \
772 ((__INC__) == MDMA_SRC_DEC_WORD) || \
773 ((__INC__) == MDMA_SRC_DEC_DOUBLEWORD))
775#define IS_MDMA_DESTINATION_INC(__INC__) (((__INC__) == MDMA_DEST_INC_DISABLE ) || \
776 ((__INC__) == MDMA_DEST_INC_BYTE ) || \
777 ((__INC__) == MDMA_DEST_INC_HALFWORD ) || \
778 ((__INC__) == MDMA_DEST_INC_WORD ) || \
779 ((__INC__) == MDMA_DEST_INC_DOUBLEWORD) || \
780 ((__INC__) == MDMA_DEST_DEC_BYTE) || \
781 ((__INC__) == MDMA_DEST_DEC_HALFWORD) || \
782 ((__INC__) == MDMA_DEST_DEC_WORD) || \
783 ((__INC__) == MDMA_DEST_DEC_DOUBLEWORD))
785#define IS_MDMA_SOURCE_DATASIZE(__SIZE__) (((__SIZE__) == MDMA_SRC_DATASIZE_BYTE ) || \
786 ((__SIZE__) == MDMA_SRC_DATASIZE_HALFWORD ) || \
787 ((__SIZE__) == MDMA_SRC_DATASIZE_WORD ) || \
788 ((__SIZE__) == MDMA_SRC_DATASIZE_DOUBLEWORD))
790#define IS_MDMA_DESTINATION_DATASIZE(__SIZE__) (((__SIZE__) == MDMA_DEST_DATASIZE_BYTE ) || \
791 ((__SIZE__) == MDMA_DEST_DATASIZE_HALFWORD ) || \
792 ((__SIZE__) == MDMA_DEST_DATASIZE_WORD ) || \
793 ((__SIZE__) == MDMA_DEST_DATASIZE_DOUBLEWORD))
795#define IS_MDMA_DATA_ALIGNMENT(__ALIGNMENT__) (((__ALIGNMENT__) == MDMA_DATAALIGN_PACKENABLE ) || \
796 ((__ALIGNMENT__) == MDMA_DATAALIGN_RIGHT ) || \
797 ((__ALIGNMENT__) == MDMA_DATAALIGN_RIGHT_SIGNED ) || \
798 ((__ALIGNMENT__) == MDMA_DATAALIGN_LEFT))
801#define IS_MDMA_SOURCE_BURST(__BURST__) (((__BURST__) == MDMA_SOURCE_BURST_SINGLE ) || \
802 ((__BURST__) == MDMA_SOURCE_BURST_2BEATS ) || \
803 ((__BURST__) == MDMA_SOURCE_BURST_4BEATS ) || \
804 ((__BURST__) == MDMA_SOURCE_BURST_8BEATS) || \
805 ((__BURST__) == MDMA_SOURCE_BURST_16BEATS) || \
806 ((__BURST__) == MDMA_SOURCE_BURST_32BEATS) || \
807 ((__BURST__) == MDMA_SOURCE_BURST_64BEATS) || \
808 ((__BURST__) == MDMA_SOURCE_BURST_128BEATS))
811#define IS_MDMA_DESTINATION_BURST(__BURST__) (((__BURST__) == MDMA_DEST_BURST_SINGLE ) || \
812 ((__BURST__) == MDMA_DEST_BURST_2BEATS ) || \
813 ((__BURST__) == MDMA_DEST_BURST_4BEATS ) || \
814 ((__BURST__) == MDMA_DEST_BURST_8BEATS) || \
815 ((__BURST__) == MDMA_DEST_BURST_16BEATS) || \
816 ((__BURST__) == MDMA_DEST_BURST_32BEATS) || \
817 ((__BURST__) == MDMA_DEST_BURST_64BEATS) || \
818 ((__BURST__) == MDMA_DEST_BURST_128BEATS))
820 #define IS_MDMA_TRANSFER_TRIGGER_MODE(__MODE__) (((__MODE__) == MDMA_BUFFER_TRANSFER ) || \
821 ((__MODE__) == MDMA_BLOCK_TRANSFER ) || \
822 ((__MODE__) == MDMA_REPEAT_BLOCK_TRANSFER ) || \
823 ((__MODE__) == MDMA_FULL_TRANSFER))
825#define IS_MDMA_BUFFER_TRANSFER_LENGTH(__LENGTH__) (((__LENGTH__) >= 0x00000001U) && ((__LENGTH__) < 0x000000FFU))
827#define IS_MDMA_BLOCK_COUNT(__COUNT__) (((__COUNT__) > 0U ) && ((__COUNT__) <= 4096U))
829#define IS_MDMA_TRANSFER_LENGTH(SIZE) (((SIZE) > 0U) && ((SIZE) <= 65536U))
831#define IS_MDMA_BLOCK_ADDR_OFFSET(__BLOCK_ADD_OFFSET__) (((__BLOCK_ADD_OFFSET__) > (-65536)) && ((__BLOCK_ADD_OFFSET__) < 65536))
#define __IO
Defines 'read / write' permissions.
HAL_StatusTypeDef HAL_MDMA_ConfigPostRequestMask(MDMA_HandleTypeDef *hmdma, uint32_t MaskAddress, uint32_t MaskData)
HAL_StatusTypeDef HAL_MDMA_Init(MDMA_HandleTypeDef *hmdma)
HAL_StatusTypeDef HAL_MDMA_RegisterCallback(MDMA_HandleTypeDef *hmdma, HAL_MDMA_CallbackIDTypeDef CallbackID, void(*pCallback)(MDMA_HandleTypeDef *_hmdma))
HAL_StatusTypeDef HAL_MDMA_DeInit(MDMA_HandleTypeDef *hmdma)
HAL_StatusTypeDef HAL_MDMA_UnRegisterCallback(MDMA_HandleTypeDef *hmdma, HAL_MDMA_CallbackIDTypeDef CallbackID)
HAL_StatusTypeDef HAL_MDMA_LinkedList_CreateNode(MDMA_LinkNodeTypeDef *pNode, MDMA_LinkNodeConfTypeDef *pNodeConfig)
HAL_StatusTypeDef HAL_MDMA_LinkedList_EnableCircularMode(MDMA_HandleTypeDef *hmdma)
HAL_StatusTypeDef HAL_MDMA_LinkedList_AddNode(MDMA_HandleTypeDef *hmdma, MDMA_LinkNodeTypeDef *pNewNode, const MDMA_LinkNodeTypeDef *pPrevNode)
HAL_StatusTypeDef HAL_MDMA_LinkedList_RemoveNode(MDMA_HandleTypeDef *hmdma, MDMA_LinkNodeTypeDef *pNode)
HAL_StatusTypeDef HAL_MDMA_LinkedList_DisableCircularMode(MDMA_HandleTypeDef *hmdma)
HAL_StatusTypeDef HAL_MDMA_Abort_IT(MDMA_HandleTypeDef *hmdma)
HAL_StatusTypeDef HAL_MDMA_Abort(MDMA_HandleTypeDef *hmdma)
HAL_StatusTypeDef HAL_MDMA_Start_IT(MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount)
HAL_StatusTypeDef HAL_MDMA_PollForTransfer(MDMA_HandleTypeDef *hmdma, HAL_MDMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
HAL_StatusTypeDef HAL_MDMA_GenerateSWRequest(MDMA_HandleTypeDef *hmdma)
HAL_StatusTypeDef HAL_MDMA_Start(MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount)
void HAL_MDMA_IRQHandler(MDMA_HandleTypeDef *hmdma)
HAL_MDMA_StateTypeDef HAL_MDMA_GetState(const MDMA_HandleTypeDef *hmdma)
uint32_t HAL_MDMA_GetError(const MDMA_HandleTypeDef *hmdma)
HAL_MDMA_StateTypeDef
HAL MDMA State structure definition.
HAL_MDMA_LevelCompleteTypeDef
HAL MDMA Level Complete structure definition.
HAL_MDMA_CallbackIDTypeDef
HAL MDMA Callbacks IDs structure definition.
struct __MDMA_HandleTypeDef MDMA_HandleTypeDef
MDMA handle Structure definition.
@ HAL_MDMA_STATE_RESET
MDMA not yet initialized or disabled.
@ HAL_MDMA_STATE_BUSY
MDMA process is ongoing.
@ HAL_MDMA_STATE_ABORT
MDMA Abort state.
@ HAL_MDMA_STATE_READY
MDMA initialized and ready for use.
@ HAL_MDMA_STATE_ERROR
MDMA error state.
@ HAL_MDMA_FULL_TRANSFER
Full transfer.
@ HAL_MDMA_BUFFER_TRANSFER
Buffer Transfer.
@ HAL_MDMA_BLOCK_TRANSFER
Block Transfer.
@ HAL_MDMA_REPEAT_BLOCK_TRANSFER
repeat block Transfer
@ HAL_MDMA_XFER_CPLT_CB_ID
Full transfer.
@ HAL_MDMA_XFER_ABORT_CB_ID
Abort.
@ HAL_MDMA_XFER_REPBLOCKCPLT_CB_ID
Repeated Block Transfer.
@ HAL_MDMA_XFER_BUFFERCPLT_CB_ID
Buffer Transfer.
@ HAL_MDMA_XFER_ERROR_CB_ID
Error.
@ HAL_MDMA_XFER_ALL_CB_ID
All.
@ HAL_MDMA_XFER_BLOCKCPLT_CB_ID
Block Transfer.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
HAL_LockTypeDef
HAL Lock structures definition.
MDMA Configuration Structure definition.
int32_t SourceBlockAddressOffset
this field specifies the Next block source address offset signed value : if > 0 then increment the ne...
uint32_t TransferTriggerMode
Specifies the Trigger Transfer mode : each request triggers a : a buffer transfer,...
uint32_t DestinationInc
Specifies if the Destination increment mode .
uint32_t DestBurst
Specifies the Burst transfer configuration for the destination memory transfers.
uint32_t SourceInc
Specifies if the Source increment mode .
uint32_t SourceBurst
Specifies the Burst transfer configuration for the source memory transfers.
uint32_t Priority
Specifies the software priority for the MDMAy channelx.
uint32_t SourceDataSize
Specifies the source data size.
uint32_t BufferTransferLength
Specifies the buffer Transfer Length (number of bytes), this is the number of bytes to be transferred...
uint32_t Endianness
Specifies if the MDMA transactions preserve the Little endianness.
uint32_t Request
Specifies the MDMA request.
uint32_t DataAlignment
Specifies the source to destination Memory data packing/padding mode.
int32_t DestBlockAddressOffset
this field specifies the Next block destination address offset signed value : if > 0 then increment t...
uint32_t DestDataSize
Specifies the destination data size.
HAL MDMA linked list node configuration structure definition.
uint32_t PostRequestMaskData
specifies the value to be written to PostRequestMaskAddress after a request is served.
uint32_t PostRequestMaskAddress
specifies the address to be updated (written) with PostRequestMaskData after a request is served.
MDMA_InitTypeDef Init
configuration of the specified MDMA Linked List Node
uint32_t BlockDataLength
The data length of a block in bytes.
uint32_t DstAddress
The destination memory address for the Linked list Node.
uint32_t BlockCount
The number of blocks to be transferred.
uint32_t SrcAddress
The source memory address for the Linked list Node.
HAL MDMA linked list node structure definition.
__IO uint32_t CDAR
New CDAR register configuration for the given MDMA linked list node.
__IO uint32_t CTCR
New CTCR register configuration for the given MDMA linked list node.
__IO uint32_t CBRUR
New CBRUR register configuration for the given MDMA linked list node.
__IO uint32_t Reserved
Reserved register.
__IO uint32_t CLAR
New CLAR register configuration for the given MDMA linked list node.
__IO uint32_t CMDR
New CMDR register configuration for the given MDMA linked list node.
__IO uint32_t CBNDTR
New CBNDTR register configuration for the given MDMA linked list node.
__IO uint32_t CMAR
New CMAR register configuration for the given MDMA linked list node.
__IO uint32_t CTBR
New CTBR register configuration for the given MDMA linked list node.
__IO uint32_t CSAR
New CSAR register configuration for the given MDMA linked list node.
MDMA handle Structure definition.
__IO uint32_t ErrorCode
MDMA Error code.
void(* XferBufferCpltCallback)(struct __MDMA_HandleTypeDef *hmdma)
MDMA buffer transfer complete callback.
MDMA_LinkNodeTypeDef * FirstLinkedListNodeAddress
specifies the first node address of the transfer list (after the initial node defined by the Init str...
MDMA_LinkNodeTypeDef * LastLinkedListNodeAddress
specifies the last node address of the transfer list this parameter is used internally by the MDMA dr...
void * Parent
Parent object state.
void(* XferCpltCallback)(struct __MDMA_HandleTypeDef *hmdma)
MDMA transfer complete callback.
void(* XferBlockCpltCallback)(struct __MDMA_HandleTypeDef *hmdma)
MDMA block transfer complete callback.
void(* XferRepeatBlockCpltCallback)(struct __MDMA_HandleTypeDef *hmdma)
MDMA block transfer repeat callback.
uint32_t LinkedListNodeCounter
Number of nodes in the MDMA linked list.
HAL_LockTypeDef Lock
MDMA locking object.
MDMA_Channel_TypeDef * Instance
Register base address.
__IO HAL_MDMA_StateTypeDef State
MDMA transfer state.
MDMA_InitTypeDef Init
MDMA communication parameters.
void(* XferErrorCallback)(struct __MDMA_HandleTypeDef *hmdma)
MDMA transfer error callback.
void(* XferAbortCallback)(struct __MDMA_HandleTypeDef *hmdma)
MDMA transfer Abort callback.