The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /**
AnnaBridge 172:65be27845400 2 ******************************************************************************
AnnaBridge 172:65be27845400 3 * @file stm32h7xx_hal_mdma.h
AnnaBridge 172:65be27845400 4 * @author MCD Application Team
AnnaBridge 172:65be27845400 5 * @brief Header file of DMA HAL module.
AnnaBridge 172:65be27845400 6 ******************************************************************************
AnnaBridge 172:65be27845400 7 * @attention
AnnaBridge 172:65be27845400 8 *
AnnaBridge 172:65be27845400 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics.
AnnaBridge 172:65be27845400 10 * All rights reserved.</center></h2>
AnnaBridge 172:65be27845400 11 *
AnnaBridge 172:65be27845400 12 * This software component is licensed by ST under BSD 3-Clause license,
AnnaBridge 172:65be27845400 13 * the "License"; You may not use this file except in compliance with the
AnnaBridge 172:65be27845400 14 * License. You may obtain a copy of the License at:
AnnaBridge 172:65be27845400 15 * opensource.org/licenses/BSD-3-Clause
AnnaBridge 172:65be27845400 16 *
AnnaBridge 172:65be27845400 17 ******************************************************************************
AnnaBridge 172:65be27845400 18 */
AnnaBridge 172:65be27845400 19
AnnaBridge 172:65be27845400 20 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 172:65be27845400 21 #ifndef STM32H7xx_HAL_MDMA_H
AnnaBridge 172:65be27845400 22 #define STM32H7xx_HAL_MDMA_H
AnnaBridge 172:65be27845400 23
AnnaBridge 172:65be27845400 24 #ifdef __cplusplus
AnnaBridge 172:65be27845400 25 extern "C" {
AnnaBridge 172:65be27845400 26 #endif
AnnaBridge 172:65be27845400 27
AnnaBridge 172:65be27845400 28 /* Includes ------------------------------------------------------------------*/
AnnaBridge 172:65be27845400 29 #include "stm32h7xx_hal_def.h"
AnnaBridge 172:65be27845400 30
AnnaBridge 172:65be27845400 31 /** @addtogroup STM32H7xx_HAL_Driver
AnnaBridge 172:65be27845400 32 * @{
AnnaBridge 172:65be27845400 33 */
AnnaBridge 172:65be27845400 34
AnnaBridge 172:65be27845400 35 /** @addtogroup MDMA
AnnaBridge 172:65be27845400 36 * @{
AnnaBridge 172:65be27845400 37 */
AnnaBridge 172:65be27845400 38
AnnaBridge 172:65be27845400 39 /* Exported types ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 40
AnnaBridge 172:65be27845400 41 /** @defgroup MDMA_Exported_Types MDMA Exported Types
AnnaBridge 172:65be27845400 42 * @brief MDMA Exported Types
AnnaBridge 172:65be27845400 43 * @{
AnnaBridge 172:65be27845400 44 */
AnnaBridge 172:65be27845400 45
AnnaBridge 172:65be27845400 46 /**
AnnaBridge 172:65be27845400 47 * @brief MDMA Configuration Structure definition
AnnaBridge 172:65be27845400 48 */
AnnaBridge 172:65be27845400 49 typedef struct
AnnaBridge 172:65be27845400 50 {
AnnaBridge 172:65be27845400 51
AnnaBridge 172:65be27845400 52 uint32_t Request; /*!< Specifies the MDMA request.
AnnaBridge 172:65be27845400 53 This parameter can be a value of @ref MDMA_Request_selection*/
AnnaBridge 172:65be27845400 54
AnnaBridge 172:65be27845400 55 uint32_t TransferTriggerMode; /*!< Specifies the Trigger Transfer mode : each request triggers a :
AnnaBridge 172:65be27845400 56 a buffer transfer, a block transfer, a repeated block transfer or a linked list transfer
AnnaBridge 172:65be27845400 57 This parameter can be a value of @ref MDMA_Transfer_TriggerMode */
AnnaBridge 172:65be27845400 58
AnnaBridge 172:65be27845400 59 uint32_t Priority; /*!< Specifies the software priority for the MDMAy channelx.
AnnaBridge 172:65be27845400 60 This parameter can be a value of @ref MDMA_Priority_level */
AnnaBridge 172:65be27845400 61
AnnaBridge 172:65be27845400 62 uint32_t Endianness; /*!< Specifies if the MDMA transactions preserve the Little endianness.
AnnaBridge 172:65be27845400 63 This parameter can be a value of @ref MDMA_Endianness */
AnnaBridge 172:65be27845400 64
AnnaBridge 172:65be27845400 65 uint32_t SourceInc; /*!< Specifies if the Source increment mode .
AnnaBridge 172:65be27845400 66 This parameter can be a value of @ref MDMA_Source_increment_mode */
AnnaBridge 172:65be27845400 67
AnnaBridge 172:65be27845400 68 uint32_t DestinationInc; /*!< Specifies if the Destination increment mode .
AnnaBridge 172:65be27845400 69 This parameter can be a value of @ref MDMA_Destination_increment_mode */
AnnaBridge 172:65be27845400 70
AnnaBridge 172:65be27845400 71 uint32_t SourceDataSize; /*!< Specifies the source data size.
AnnaBridge 172:65be27845400 72 This parameter can be a value of @ref MDMA_Source_data_size */
AnnaBridge 172:65be27845400 73
AnnaBridge 172:65be27845400 74 uint32_t DestDataSize; /*!< Specifies the destination data size.
AnnaBridge 172:65be27845400 75 This parameter can be a value of @ref MDMA_Destination_data_size */
AnnaBridge 172:65be27845400 76
AnnaBridge 172:65be27845400 77
AnnaBridge 172:65be27845400 78 uint32_t DataAlignment; /*!< Specifies the source to destination Memory data packing/padding mode.
AnnaBridge 172:65be27845400 79 This parameter can be a value of @ref MDMA_data_Alignment */
AnnaBridge 172:65be27845400 80
AnnaBridge 172:65be27845400 81 uint32_t BufferTransferLength; /*!< Specifies the buffer Transfer Length (number of bytes),
AnnaBridge 172:65be27845400 82 this is the number of bytes to be transferred in a single transfer (1 byte to 128 bytes)*/
AnnaBridge 172:65be27845400 83
AnnaBridge 172:65be27845400 84 uint32_t SourceBurst; /*!< Specifies the Burst transfer configuration for the source memory transfers.
AnnaBridge 172:65be27845400 85 It specifies the amount of data to be transferred in a single non interruptable
AnnaBridge 172:65be27845400 86 transaction.
AnnaBridge 172:65be27845400 87 This parameter can be a value of @ref MDMA_Source_burst
AnnaBridge 172:65be27845400 88 @note : the burst may be FIXED/INCR based on SourceInc value ,
AnnaBridge 172:65be27845400 89 the BURST must be programmed as to ensure that the burst size will be lower than than
AnnaBridge 172:65be27845400 90 BufferTransferLength */
AnnaBridge 172:65be27845400 91
AnnaBridge 172:65be27845400 92 uint32_t DestBurst; /*!< Specifies the Burst transfer configuration for the destination memory transfers.
AnnaBridge 172:65be27845400 93 It specifies the amount of data to be transferred in a single non interruptable
AnnaBridge 172:65be27845400 94 transaction.
AnnaBridge 172:65be27845400 95 This parameter can be a value of @ref MDMA_Destination_burst
AnnaBridge 172:65be27845400 96 @note : the burst may be FIXED/INCR based on DestinationInc value ,
AnnaBridge 172:65be27845400 97 the BURST must be programmed as to ensure that the burst size will be lower than than
AnnaBridge 172:65be27845400 98 BufferTransferLength */
AnnaBridge 172:65be27845400 99
AnnaBridge 172:65be27845400 100 int32_t SourceBlockAddressOffset; /*!< this field specifies the Next block source address offset
AnnaBridge 172:65be27845400 101 signed value : if > 0 then increment the next block source Address by offset from where the last block ends
AnnaBridge 172:65be27845400 102 if < 0 then decrement the next block source Address by offset from where the last block ends
AnnaBridge 172:65be27845400 103 if == 0, the next block source address starts from where the last block ends
AnnaBridge 172:65be27845400 104 */
AnnaBridge 172:65be27845400 105
AnnaBridge 172:65be27845400 106
AnnaBridge 172:65be27845400 107 int32_t DestBlockAddressOffset; /*!< this field specifies the Next block destination address offset
AnnaBridge 172:65be27845400 108 signed value : if > 0 then increment the next block destination Address by offset from where the last block ends
AnnaBridge 172:65be27845400 109 if < 0 then decrement the next block destination Address by offset from where the last block ends
AnnaBridge 172:65be27845400 110 if == 0, the next block destination address starts from where the last block ends
AnnaBridge 172:65be27845400 111 */
AnnaBridge 172:65be27845400 112
AnnaBridge 172:65be27845400 113 }MDMA_InitTypeDef;
AnnaBridge 172:65be27845400 114
AnnaBridge 172:65be27845400 115 /**
AnnaBridge 172:65be27845400 116 * @brief HAL MDMA linked list node structure definition
AnnaBridge 172:65be27845400 117 * @note The Linked list node allows to define a new MDMA configuration
AnnaBridge 172:65be27845400 118 * (CTCR ,CBNDTR ,CSAR ,CDAR ,CBRUR, CLAR, CTBR, CMAR and CMDR registers).
AnnaBridge 172:65be27845400 119 * When CLAR register is configured to a non NULL value , each time a transfer ends,
AnnaBridge 172:65be27845400 120 * a new configuration (linked list node) is automatically loaded from the address given in CLAR register.
AnnaBridge 172:65be27845400 121 */
AnnaBridge 172:65be27845400 122 typedef struct
AnnaBridge 172:65be27845400 123 {
AnnaBridge 172:65be27845400 124 __IO uint32_t CTCR; /*!< New CTCR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 125 __IO uint32_t CBNDTR; /*!< New CBNDTR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 126 __IO uint32_t CSAR; /*!< New CSAR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 127 __IO uint32_t CDAR; /*!< New CDAR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 128 __IO uint32_t CBRUR; /*!< New CBRUR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 129 __IO uint32_t CLAR; /*!< New CLAR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 130 __IO uint32_t CTBR; /*!< New CTBR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 131 __IO uint32_t Reserved; /*!< Reserved register */
AnnaBridge 172:65be27845400 132 __IO uint32_t CMAR; /*!< New CMAR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 133 __IO uint32_t CMDR; /*!< New CMDR register configuration for the given MDMA linked list node */
AnnaBridge 172:65be27845400 134
AnnaBridge 172:65be27845400 135 }MDMA_LinkNodeTypeDef;
AnnaBridge 172:65be27845400 136
AnnaBridge 172:65be27845400 137 /**
AnnaBridge 172:65be27845400 138 * @brief HAL MDMA linked list node configuration structure definition
AnnaBridge 172:65be27845400 139 * @note used with HAL_MDMA_LinkedList_CreateNode function
AnnaBridge 172:65be27845400 140 */
AnnaBridge 172:65be27845400 141 typedef struct
AnnaBridge 172:65be27845400 142 {
AnnaBridge 172:65be27845400 143 MDMA_InitTypeDef Init; /*!< configuration of the specified MDMA Linked List Node */
AnnaBridge 172:65be27845400 144 uint32_t SrcAddress; /*!< The source memory address for the Linked list Node */
AnnaBridge 172:65be27845400 145 uint32_t DstAddress; /*!< The destination memory address for the Linked list Node */
AnnaBridge 172:65be27845400 146 uint32_t BlockDataLength; /*!< The data length of a block in bytes */
AnnaBridge 172:65be27845400 147 uint32_t BlockCount; /*!< The number of blocks to be transferred */
AnnaBridge 172:65be27845400 148
AnnaBridge 172:65be27845400 149 uint32_t PostRequestMaskAddress; /*!< specifies the address to be updated (written) with PostRequestMaskData after a request is served.
AnnaBridge 172:65be27845400 150 PostRequestMaskAddress and PostRequestMaskData could be used to automatically clear a peripheral flag when the request is served */
AnnaBridge 172:65be27845400 151
AnnaBridge 172:65be27845400 152 uint32_t PostRequestMaskData; /*!< specifies the value to be written to PostRequestMaskAddress after a request is served.
AnnaBridge 172:65be27845400 153 PostRequestMaskAddress and PostRequestMaskData could be used to automatically clear a peripheral flag when the request is served */
AnnaBridge 172:65be27845400 154
AnnaBridge 172:65be27845400 155
AnnaBridge 172:65be27845400 156 }MDMA_LinkNodeConfTypeDef;
AnnaBridge 172:65be27845400 157
AnnaBridge 172:65be27845400 158
AnnaBridge 172:65be27845400 159 /**
AnnaBridge 172:65be27845400 160 * @brief HAL MDMA State structure definition
AnnaBridge 172:65be27845400 161 */
AnnaBridge 172:65be27845400 162 typedef enum
AnnaBridge 172:65be27845400 163 {
AnnaBridge 172:65be27845400 164 HAL_MDMA_STATE_RESET = 0x00U, /*!< MDMA not yet initialized or disabled */
AnnaBridge 172:65be27845400 165 HAL_MDMA_STATE_READY = 0x01U, /*!< MDMA initialized and ready for use */
AnnaBridge 172:65be27845400 166 HAL_MDMA_STATE_BUSY = 0x02U, /*!< MDMA process is ongoing */
AnnaBridge 172:65be27845400 167 HAL_MDMA_STATE_ERROR = 0x03U, /*!< MDMA error state */
AnnaBridge 172:65be27845400 168 HAL_MDMA_STATE_ABORT = 0x04U, /*!< MDMA Abort state */
AnnaBridge 172:65be27845400 169
AnnaBridge 172:65be27845400 170 }HAL_MDMA_StateTypeDef;
AnnaBridge 172:65be27845400 171
AnnaBridge 172:65be27845400 172 /**
AnnaBridge 172:65be27845400 173 * @brief HAL MDMA Level Complete structure definition
AnnaBridge 172:65be27845400 174 */
AnnaBridge 172:65be27845400 175 typedef enum
AnnaBridge 172:65be27845400 176 {
AnnaBridge 172:65be27845400 177 HAL_MDMA_FULL_TRANSFER = 0x00U, /*!< Full transfer */
AnnaBridge 172:65be27845400 178 HAL_MDMA_BUFFER_TRANSFER = 0x01U, /*!< Buffer Transfer */
AnnaBridge 172:65be27845400 179 HAL_MDMA_BLOCK_TRANSFER = 0x02U, /*!< Block Transfer */
AnnaBridge 172:65be27845400 180 HAL_MDMA_REPEAT_BLOCK_TRANSFER = 0x03U /*!< repeat block Transfer */
AnnaBridge 172:65be27845400 181
AnnaBridge 172:65be27845400 182 }HAL_MDMA_LevelCompleteTypeDef;
AnnaBridge 172:65be27845400 183
AnnaBridge 172:65be27845400 184 /**
AnnaBridge 172:65be27845400 185 * @brief HAL MDMA Callbacks IDs structure definition
AnnaBridge 172:65be27845400 186 */
AnnaBridge 172:65be27845400 187 typedef enum
AnnaBridge 172:65be27845400 188 {
AnnaBridge 172:65be27845400 189 HAL_MDMA_XFER_CPLT_CB_ID = 0x00U, /*!< Full transfer */
AnnaBridge 172:65be27845400 190 HAL_MDMA_XFER_BUFFERCPLT_CB_ID = 0x01U, /*!< Buffer Transfer */
AnnaBridge 172:65be27845400 191 HAL_MDMA_XFER_BLOCKCPLT_CB_ID = 0x02U, /*!< Block Transfer */
AnnaBridge 172:65be27845400 192 HAL_MDMA_XFER_REPBLOCKCPLT_CB_ID = 0x03U, /*!< Repeated Block Transfer */
AnnaBridge 172:65be27845400 193 HAL_MDMA_XFER_ERROR_CB_ID = 0x04U, /*!< Error */
AnnaBridge 172:65be27845400 194 HAL_MDMA_XFER_ABORT_CB_ID = 0x05U, /*!< Abort */
AnnaBridge 172:65be27845400 195 HAL_MDMA_XFER_ALL_CB_ID = 0x06U /*!< All */
AnnaBridge 172:65be27845400 196
AnnaBridge 172:65be27845400 197 }HAL_MDMA_CallbackIDTypeDef;
AnnaBridge 172:65be27845400 198
AnnaBridge 172:65be27845400 199
AnnaBridge 172:65be27845400 200 /**
AnnaBridge 172:65be27845400 201 * @brief MDMA handle Structure definition
AnnaBridge 172:65be27845400 202 */
AnnaBridge 172:65be27845400 203 typedef struct __MDMA_HandleTypeDef
AnnaBridge 172:65be27845400 204 {
AnnaBridge 172:65be27845400 205 MDMA_Channel_TypeDef *Instance; /*!< Register base address */
AnnaBridge 172:65be27845400 206
AnnaBridge 172:65be27845400 207 MDMA_InitTypeDef Init; /*!< MDMA communication parameters */
AnnaBridge 172:65be27845400 208
AnnaBridge 172:65be27845400 209 HAL_LockTypeDef Lock; /*!< MDMA locking object */
AnnaBridge 172:65be27845400 210
AnnaBridge 172:65be27845400 211 __IO HAL_MDMA_StateTypeDef State; /*!< MDMA transfer state */
AnnaBridge 172:65be27845400 212
AnnaBridge 172:65be27845400 213 void *Parent; /*!< Parent object state */
AnnaBridge 172:65be27845400 214
AnnaBridge 172:65be27845400 215 void (* XferCpltCallback)( struct __MDMA_HandleTypeDef * hmdma); /*!< MDMA transfer complete callback */
AnnaBridge 172:65be27845400 216
AnnaBridge 172:65be27845400 217 void (* XferBufferCpltCallback)( struct __MDMA_HandleTypeDef * hmdma); /*!< MDMA buffer transfer complete callback */
AnnaBridge 172:65be27845400 218
AnnaBridge 172:65be27845400 219 void (* XferBlockCpltCallback)( struct __MDMA_HandleTypeDef * hmdma); /*!< MDMA block transfer complete callback */
AnnaBridge 172:65be27845400 220
AnnaBridge 172:65be27845400 221 void (* XferRepeatBlockCpltCallback)( struct __MDMA_HandleTypeDef * hmdma); /*!< MDMA block transfer repeat callback */
AnnaBridge 172:65be27845400 222
AnnaBridge 172:65be27845400 223 void (* XferErrorCallback)( struct __MDMA_HandleTypeDef * hmdma); /*!< MDMA transfer error callback */
AnnaBridge 172:65be27845400 224
AnnaBridge 172:65be27845400 225 void (* XferAbortCallback)( struct __MDMA_HandleTypeDef * hmdma); /*!< MDMA transfer Abort callback */
AnnaBridge 172:65be27845400 226
AnnaBridge 172:65be27845400 227
AnnaBridge 172:65be27845400 228 MDMA_LinkNodeTypeDef *FirstLinkedListNodeAddress; /*!< specifies the first node address of the transfer list
AnnaBridge 172:65be27845400 229 (after the initial node defined by the Init struct)
AnnaBridge 172:65be27845400 230 this parameter is used internally by the MDMA driver
AnnaBridge 172:65be27845400 231 to construct the linked list node
AnnaBridge 172:65be27845400 232 */
AnnaBridge 172:65be27845400 233
AnnaBridge 172:65be27845400 234 MDMA_LinkNodeTypeDef *LastLinkedListNodeAddress; /*!< specifies the last node address of the transfer list
AnnaBridge 172:65be27845400 235 this parameter is used internally by the MDMA driver
AnnaBridge 172:65be27845400 236 to construct the linked list node
AnnaBridge 172:65be27845400 237 */
AnnaBridge 172:65be27845400 238 uint32_t LinkedListNodeCounter; /*!< Number of nodes in the MDMA linked list */
AnnaBridge 172:65be27845400 239
AnnaBridge 172:65be27845400 240 __IO uint32_t ErrorCode; /*!< MDMA Error code */
AnnaBridge 172:65be27845400 241
AnnaBridge 172:65be27845400 242 } MDMA_HandleTypeDef;
AnnaBridge 172:65be27845400 243
AnnaBridge 172:65be27845400 244 /**
AnnaBridge 172:65be27845400 245 * @}
AnnaBridge 172:65be27845400 246 */
AnnaBridge 172:65be27845400 247
AnnaBridge 172:65be27845400 248 /* Exported constants --------------------------------------------------------*/
AnnaBridge 172:65be27845400 249
AnnaBridge 172:65be27845400 250 /** @defgroup MDMA_Exported_Constants MDMA Exported Constants
AnnaBridge 172:65be27845400 251 * @brief MDMA Exported constants
AnnaBridge 172:65be27845400 252 * @{
AnnaBridge 172:65be27845400 253 */
AnnaBridge 172:65be27845400 254
AnnaBridge 172:65be27845400 255 /** @defgroup MDMA_Error_Codes MDMA Error Codes
AnnaBridge 172:65be27845400 256 * @brief MDMA Error Codes
AnnaBridge 172:65be27845400 257 * @{
AnnaBridge 172:65be27845400 258 */
AnnaBridge 172:65be27845400 259 #define HAL_MDMA_ERROR_NONE ((uint32_t)0x00000000U) /*!< No error */
AnnaBridge 172:65be27845400 260 #define HAL_MDMA_ERROR_READ_XFER ((uint32_t)0x00000001U) /*!< Read Transfer error */
AnnaBridge 172:65be27845400 261 #define HAL_MDMA_ERROR_WRITE_XFER ((uint32_t)0x00000002U) /*!< Write Transfer error */
AnnaBridge 172:65be27845400 262 #define HAL_MDMA_ERROR_MASK_DATA ((uint32_t)0x00000004U) /*!< Error Mask Data error */
AnnaBridge 172:65be27845400 263 #define HAL_MDMA_ERROR_LINKED_LIST ((uint32_t)0x00000008U) /*!< Linked list Data error */
AnnaBridge 172:65be27845400 264 #define HAL_MDMA_ERROR_ALIGNMENT ((uint32_t)0x00000010U) /*!< Address/Size alignment error */
AnnaBridge 172:65be27845400 265 #define HAL_MDMA_ERROR_BLOCK_SIZE ((uint32_t)0x00000020U) /*!< Block Size error */
AnnaBridge 172:65be27845400 266 #define HAL_MDMA_ERROR_TIMEOUT ((uint32_t)0x00000040U) /*!< Timeout error */
AnnaBridge 172:65be27845400 267 #define HAL_MDMA_ERROR_NO_XFER ((uint32_t)0x00000080U) /*!< Abort or SW trigger requested with no Xfer ongoing */
AnnaBridge 172:65be27845400 268 #define HAL_MDMA_ERROR_BUSY ((uint32_t)0x00000100U) /*!< DeInit or SW trigger requested with Xfer ongoing */
AnnaBridge 172:65be27845400 269
AnnaBridge 172:65be27845400 270 /**
AnnaBridge 172:65be27845400 271 * @}
AnnaBridge 172:65be27845400 272 */
AnnaBridge 172:65be27845400 273
AnnaBridge 172:65be27845400 274 /** @defgroup MDMA_Request_selection MDMA Request selection
AnnaBridge 172:65be27845400 275 * @brief MDMA_Request_selection
AnnaBridge 172:65be27845400 276 * @{
AnnaBridge 172:65be27845400 277 */
AnnaBridge 172:65be27845400 278
AnnaBridge 172:65be27845400 279 #define MDMA_REQUEST_DMA1_Stream0_TC ((uint32_t)0x00000000U) /*!< MDMA HW request is DMA1 Stream 0 Transfer Complete Flag */
AnnaBridge 172:65be27845400 280 #define MDMA_REQUEST_DMA1_Stream1_TC ((uint32_t)0x00000001U) /*!< MDMA HW request is DMA1 Stream 1 Transfer Complete Flag */
AnnaBridge 172:65be27845400 281 #define MDMA_REQUEST_DMA1_Stream2_TC ((uint32_t)0x00000002U) /*!< MDMA HW request is DMA1 Stream 2 Transfer Complete Flag */
AnnaBridge 172:65be27845400 282 #define MDMA_REQUEST_DMA1_Stream3_TC ((uint32_t)0x00000003U) /*!< MDMA HW request is DMA1 Stream 3 Transfer Complete Flag */
AnnaBridge 172:65be27845400 283 #define MDMA_REQUEST_DMA1_Stream4_TC ((uint32_t)0x00000004U) /*!< MDMA HW request is DMA1 Stream 4 Transfer Complete Flag */
AnnaBridge 172:65be27845400 284 #define MDMA_REQUEST_DMA1_Stream5_TC ((uint32_t)0x00000005U) /*!< MDMA HW request is DMA1 Stream 5 Transfer Complete Flag */
AnnaBridge 172:65be27845400 285 #define MDMA_REQUEST_DMA1_Stream6_TC ((uint32_t)0x00000006U) /*!< MDMA HW request is DMA1 Stream 6 Transfer Complete Flag */
AnnaBridge 172:65be27845400 286 #define MDMA_REQUEST_DMA1_Stream7_TC ((uint32_t)0x00000007U) /*!< MDMA HW request is DMA1 Stream 7 Transfer Complete Flag */
AnnaBridge 172:65be27845400 287 #define MDMA_REQUEST_DMA2_Stream0_TC ((uint32_t)0x00000008U) /*!< MDMA HW request is DMA2 Stream 0 Transfer Complete Flag */
AnnaBridge 172:65be27845400 288 #define MDMA_REQUEST_DMA2_Stream1_TC ((uint32_t)0x00000009U) /*!< MDMA HW request is DMA2 Stream 1 Transfer Complete Flag */
AnnaBridge 172:65be27845400 289 #define MDMA_REQUEST_DMA2_Stream2_TC ((uint32_t)0x0000000AU) /*!< MDMA HW request is DMA2 Stream 2 Transfer Complete Flag */
AnnaBridge 172:65be27845400 290 #define MDMA_REQUEST_DMA2_Stream3_TC ((uint32_t)0x0000000BU) /*!< MDMA HW request is DMA2 Stream 3 Transfer Complete Flag */
AnnaBridge 172:65be27845400 291 #define MDMA_REQUEST_DMA2_Stream4_TC ((uint32_t)0x0000000CU) /*!< MDMA HW request is DMA2 Stream 4 Transfer Complete Flag */
AnnaBridge 172:65be27845400 292 #define MDMA_REQUEST_DMA2_Stream5_TC ((uint32_t)0x0000000DU) /*!< MDMA HW request is DMA2 Stream 5 Transfer Complete Flag */
AnnaBridge 172:65be27845400 293 #define MDMA_REQUEST_DMA2_Stream6_TC ((uint32_t)0x0000000EU) /*!< MDMA HW request is DMA2 Stream 6 Transfer Complete Flag */
AnnaBridge 172:65be27845400 294 #define MDMA_REQUEST_DMA2_Stream7_TC ((uint32_t)0x0000000FU) /*!< MDMA HW request is DMA2 Stream 7 Transfer Complete Flag */
AnnaBridge 172:65be27845400 295 #define MDMA_REQUEST_LTDC_LINE_IT ((uint32_t)0x00000010U) /*!< MDMA HW request is LTDC Line interrupt Flag */
AnnaBridge 172:65be27845400 296 #define MDMA_REQUEST_JPEG_INFIFO_TH ((uint32_t)0x00000011U) /*!< MDMA HW request is JPEG Input FIFO threshold Flag */
AnnaBridge 172:65be27845400 297 #define MDMA_REQUEST_JPEG_INFIFO_NF ((uint32_t)0x00000012U) /*!< MDMA HW request is JPEG Input FIFO not full Flag */
AnnaBridge 172:65be27845400 298 #define MDMA_REQUEST_JPEG_OUTFIFO_TH ((uint32_t)0x00000013U) /*!< MDMA HW request is JPEG Output FIFO threshold Flag */
AnnaBridge 172:65be27845400 299 #define MDMA_REQUEST_JPEG_OUTFIFO_NE ((uint32_t)0x00000014U) /*!< MDMA HW request is JPEG Output FIFO not empty Flag */
AnnaBridge 172:65be27845400 300 #define MDMA_REQUEST_JPEG_END_CONVERSION ((uint32_t)0x00000015U) /*!< MDMA HW request is JPEG End of conversion Flag */
AnnaBridge 172:65be27845400 301 #define MDMA_REQUEST_QUADSPI_FIFO_TH ((uint32_t)0x00000016U) /*!< MDMA HW request is QSPI FIFO threshold Flag */
AnnaBridge 172:65be27845400 302 #define MDMA_REQUEST_QUADSPI_TC ((uint32_t)0x00000017U) /*!< MDMA HW request is QSPI Transfer complete Flag */
AnnaBridge 172:65be27845400 303 #define MDMA_REQUEST_DMA2D_CLUT_TC ((uint32_t)0x00000018U) /*!< MDMA HW request is DMA2D CLUT Transfer Complete Flag */
AnnaBridge 172:65be27845400 304 #define MDMA_REQUEST_DMA2D_TC ((uint32_t)0x00000019U) /*!< MDMA HW request is DMA2D Transfer Complete Flag */
AnnaBridge 172:65be27845400 305 #define MDMA_REQUEST_DMA2D_TW ((uint32_t)0x0000001AU) /*!< MDMA HW request is DMA2D Transfer Watermark Flag */
AnnaBridge 172:65be27845400 306
AnnaBridge 172:65be27845400 307 #define MDMA_REQUEST_SDMMC1_END_DATA ((uint32_t)0x0000001DU) /*!< MDMA HW request is SDMMC1 End of Data Flag */
AnnaBridge 172:65be27845400 308
AnnaBridge 172:65be27845400 309 #define MDMA_REQUEST_SW ((uint32_t)0x40000000U) /*!< MDMA SW request */
AnnaBridge 172:65be27845400 310
AnnaBridge 172:65be27845400 311 /**
AnnaBridge 172:65be27845400 312 * @}
AnnaBridge 172:65be27845400 313 */
AnnaBridge 172:65be27845400 314
AnnaBridge 172:65be27845400 315 /** @defgroup MDMA_Transfer_TriggerMode MDMA Transfer Trigger Mode
AnnaBridge 172:65be27845400 316 * @brief MDMA Transfer Trigger Mode
AnnaBridge 172:65be27845400 317 * @{
AnnaBridge 172:65be27845400 318 */
AnnaBridge 172:65be27845400 319 #define MDMA_BUFFER_TRANSFER ((uint32_t)0x00000000U) /*!< Each MDMA request (SW or HW) triggers a buffer transfer */
AnnaBridge 172:65be27845400 320 #define MDMA_BLOCK_TRANSFER ((uint32_t)MDMA_CTCR_TRGM_0) /*!< Each MDMA request (SW or HW) triggers a block transfer */
AnnaBridge 172:65be27845400 321 #define MDMA_REPEAT_BLOCK_TRANSFER ((uint32_t)MDMA_CTCR_TRGM_1) /*!< Each MDMA request (SW or HW) triggers a repeated block transfer */
AnnaBridge 172:65be27845400 322 #define MDMA_FULL_TRANSFER ((uint32_t)MDMA_CTCR_TRGM) /*!< Each MDMA request (SW or HW) triggers a Full transfer or a linked list transfer if any */
AnnaBridge 172:65be27845400 323
AnnaBridge 172:65be27845400 324 /**
AnnaBridge 172:65be27845400 325 * @}
AnnaBridge 172:65be27845400 326 */
AnnaBridge 172:65be27845400 327
AnnaBridge 172:65be27845400 328 /** @defgroup MDMA_Priority_level MDMA Priority level
AnnaBridge 172:65be27845400 329 * @brief MDMA Priority level
AnnaBridge 172:65be27845400 330 * @{
AnnaBridge 172:65be27845400 331 */
AnnaBridge 172:65be27845400 332 #define MDMA_PRIORITY_LOW ((uint32_t)0x00000000U) /*!< Priority level: Low */
AnnaBridge 172:65be27845400 333 #define MDMA_PRIORITY_MEDIUM ((uint32_t)MDMA_CCR_PL_0) /*!< Priority level: Medium */
AnnaBridge 172:65be27845400 334 #define MDMA_PRIORITY_HIGH ((uint32_t)MDMA_CCR_PL_1) /*!< Priority level: High */
AnnaBridge 172:65be27845400 335 #define MDMA_PRIORITY_VERY_HIGH ((uint32_t)MDMA_CCR_PL) /*!< Priority level: Very High */
AnnaBridge 172:65be27845400 336
AnnaBridge 172:65be27845400 337 /**
AnnaBridge 172:65be27845400 338 * @}
AnnaBridge 172:65be27845400 339 */
AnnaBridge 172:65be27845400 340
AnnaBridge 172:65be27845400 341
AnnaBridge 172:65be27845400 342 /** @defgroup MDMA_Endianness MDMA Endianness
AnnaBridge 172:65be27845400 343 * @brief MDMA Endianness
AnnaBridge 172:65be27845400 344 * @{
AnnaBridge 172:65be27845400 345 */
AnnaBridge 172:65be27845400 346 #define MDMA_LITTLE_ENDIANNESS_PRESERVE ((uint32_t)0x00000000U) /*!< little endianness preserve */
AnnaBridge 172:65be27845400 347 #define MDMA_LITTLE_BYTE_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_BEX) /*!< BYTEs endianness exchange when destination data size is > Byte */
AnnaBridge 172:65be27845400 348 #define MDMA_LITTLE_HALFWORD_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_HEX) /*!< HALF WORDs endianness exchange when destination data size is > HALF WORD*/
AnnaBridge 172:65be27845400 349 #define MDMA_LITTLE_WORD_ENDIANNESS_EXCHANGE ((uint32_t)MDMA_CCR_WEX) /*!< WORDs endianness exchange when destination data size is > DOUBLE WORD */
AnnaBridge 172:65be27845400 350
AnnaBridge 172:65be27845400 351 /**
AnnaBridge 172:65be27845400 352 * @}
AnnaBridge 172:65be27845400 353 */
AnnaBridge 172:65be27845400 354
AnnaBridge 172:65be27845400 355 /** @defgroup MDMA_Source_increment_mode MDMA Source increment mode
AnnaBridge 172:65be27845400 356 * @brief MDMA Source increment mode
AnnaBridge 172:65be27845400 357 * @{
AnnaBridge 172:65be27845400 358 */
AnnaBridge 172:65be27845400 359 #define MDMA_SRC_INC_DISABLE ((uint32_t)0x00000000U) /*!< Source address pointer is fixed */
AnnaBridge 172:65be27845400 360 #define MDMA_SRC_INC_BYTE ((uint32_t)MDMA_CTCR_SINC_1) /*!< Source address pointer is incremented by a BYTE (8 bits)*/
AnnaBridge 172:65be27845400 361 #define MDMA_SRC_INC_HALFWORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS_0) /*!< Source address pointer is incremented by a half Word (16 bits) */
AnnaBridge 172:65be27845400 362 #define MDMA_SRC_INC_WORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS_1) /*!< Source address pointer is incremented by a Word (32 bits)*/
AnnaBridge 172:65be27845400 363 #define MDMA_SRC_INC_DOUBLEWORD ((uint32_t)MDMA_CTCR_SINC_1 | (uint32_t)MDMA_CTCR_SINCOS) /*!< Source address pointer is incremented by a double Word (64 bits)) */
AnnaBridge 172:65be27845400 364 #define MDMA_SRC_DEC_BYTE ((uint32_t)MDMA_CTCR_SINC) /*!< Source address pointer is decremented by a BYTE (8 bits)*/
AnnaBridge 172:65be27845400 365 #define MDMA_SRC_DEC_HALFWORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS_0) /*!< Source address pointer is decremented by a half Word (16 bits) */
AnnaBridge 172:65be27845400 366 #define MDMA_SRC_DEC_WORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS_1) /*!< Source address pointer is decremented by a Word (32 bits)*/
AnnaBridge 172:65be27845400 367 #define MDMA_SRC_DEC_DOUBLEWORD ((uint32_t)MDMA_CTCR_SINC | (uint32_t)MDMA_CTCR_SINCOS) /*!< Source address pointer is decremented by a double Word (64 bits)) */
AnnaBridge 172:65be27845400 368
AnnaBridge 172:65be27845400 369 /**
AnnaBridge 172:65be27845400 370 * @}
AnnaBridge 172:65be27845400 371 */
AnnaBridge 172:65be27845400 372
AnnaBridge 172:65be27845400 373 /** @defgroup MDMA_Destination_increment_mode MDMA Destination increment mode
AnnaBridge 172:65be27845400 374 * @brief MDMA Destination increment mode
AnnaBridge 172:65be27845400 375 * @{
AnnaBridge 172:65be27845400 376 */
AnnaBridge 172:65be27845400 377 #define MDMA_DEST_INC_DISABLE ((uint32_t)0x00000000U) /*!< Source address pointer is fixed */
AnnaBridge 172:65be27845400 378 #define MDMA_DEST_INC_BYTE ((uint32_t)MDMA_CTCR_DINC_1) /*!< Source address pointer is incremented by a BYTE (8 bits)*/
AnnaBridge 172:65be27845400 379 #define MDMA_DEST_INC_HALFWORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS_0) /*!< Source address pointer is incremented by a half Word (16 bits) */
AnnaBridge 172:65be27845400 380 #define MDMA_DEST_INC_WORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS_1) /*!< Source address pointer is incremented by a Word (32 bits)*/
AnnaBridge 172:65be27845400 381 #define MDMA_DEST_INC_DOUBLEWORD ((uint32_t)MDMA_CTCR_DINC_1 | (uint32_t)MDMA_CTCR_DINCOS) /*!< Source address pointer is incremented by a double Word (64 bits)) */
AnnaBridge 172:65be27845400 382 #define MDMA_DEST_DEC_BYTE ((uint32_t)MDMA_CTCR_DINC) /*!< Source address pointer is decremented by a BYTE (8 bits)*/
AnnaBridge 172:65be27845400 383 #define MDMA_DEST_DEC_HALFWORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS_0) /*!< Source address pointer is decremented by a half Word (16 bits) */
AnnaBridge 172:65be27845400 384 #define MDMA_DEST_DEC_WORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS_1) /*!< Source address pointer is decremented by a Word (32 bits)*/
AnnaBridge 172:65be27845400 385 #define MDMA_DEST_DEC_DOUBLEWORD ((uint32_t)MDMA_CTCR_DINC | (uint32_t)MDMA_CTCR_DINCOS) /*!< Source address pointer is decremented by a double Word (64 bits)) */
AnnaBridge 172:65be27845400 386
AnnaBridge 172:65be27845400 387 /**
AnnaBridge 172:65be27845400 388 * @}
AnnaBridge 172:65be27845400 389 */
AnnaBridge 172:65be27845400 390
AnnaBridge 172:65be27845400 391 /** @defgroup MDMA_Source_data_size MDMA Source data size
AnnaBridge 172:65be27845400 392 * @brief MDMA Source data size
AnnaBridge 172:65be27845400 393 * @{
AnnaBridge 172:65be27845400 394 */
AnnaBridge 172:65be27845400 395 #define MDMA_SRC_DATASIZE_BYTE ((uint32_t)0x00000000U) /*!< Source data size is Byte */
AnnaBridge 172:65be27845400 396 #define MDMA_SRC_DATASIZE_HALFWORD ((uint32_t)MDMA_CTCR_SSIZE_0) /*!< Source data size is half word */
AnnaBridge 172:65be27845400 397 #define MDMA_SRC_DATASIZE_WORD ((uint32_t)MDMA_CTCR_SSIZE_1) /*!< Source data size is word */
AnnaBridge 172:65be27845400 398 #define MDMA_SRC_DATASIZE_DOUBLEWORD ((uint32_t)MDMA_CTCR_SSIZE) /*!< Source data size is double word */
AnnaBridge 172:65be27845400 399
AnnaBridge 172:65be27845400 400 /**
AnnaBridge 172:65be27845400 401 * @}
AnnaBridge 172:65be27845400 402 */
AnnaBridge 172:65be27845400 403
AnnaBridge 172:65be27845400 404 /** @defgroup MDMA_Destination_data_size MDMA Destination data size
AnnaBridge 172:65be27845400 405 * @brief MDMA Destination data size
AnnaBridge 172:65be27845400 406 * @{
AnnaBridge 172:65be27845400 407 */
AnnaBridge 172:65be27845400 408 #define MDMA_DEST_DATASIZE_BYTE ((uint32_t)0x00000000U) /*!< Destination data size is Byte */
AnnaBridge 172:65be27845400 409 #define MDMA_DEST_DATASIZE_HALFWORD ((uint32_t)MDMA_CTCR_DSIZE_0) /*!< Destination data size is half word */
AnnaBridge 172:65be27845400 410 #define MDMA_DEST_DATASIZE_WORD ((uint32_t)MDMA_CTCR_DSIZE_1) /*!< Destination data size is word */
AnnaBridge 172:65be27845400 411 #define MDMA_DEST_DATASIZE_DOUBLEWORD ((uint32_t)MDMA_CTCR_DSIZE) /*!< Destination data size is double word */
AnnaBridge 172:65be27845400 412
AnnaBridge 172:65be27845400 413 /**
AnnaBridge 172:65be27845400 414 * @}
AnnaBridge 172:65be27845400 415 */
AnnaBridge 172:65be27845400 416
AnnaBridge 172:65be27845400 417 /** @defgroup MDMA_data_Alignment MDMA data alignment
AnnaBridge 172:65be27845400 418 * @brief MDMA data alignment
AnnaBridge 172:65be27845400 419 * @{
AnnaBridge 172:65be27845400 420 */
AnnaBridge 172:65be27845400 421 #define MDMA_DATAALIGN_PACKENABLE ((uint32_t)MDMA_CTCR_PKE) /*!< The source data is packed/un-packed into the destination data size
AnnaBridge 172:65be27845400 422 All data are right aligned, in Little Endien mode. */
AnnaBridge 172:65be27845400 423 #define MDMA_DATAALIGN_RIGHT ((uint32_t)0x00000000U) /*!< Right Aligned, padded w/ 0s (default) */
AnnaBridge 172:65be27845400 424 #define MDMA_DATAALIGN_RIGHT_SIGNED ((uint32_t)MDMA_CTCR_PAM_0) /*!< Right Aligned, Sign extended ,
AnnaBridge 172:65be27845400 425 Note : this mode is allowed only if the Source data size is smaller than Destination data size */
AnnaBridge 172:65be27845400 426 #define MDMA_DATAALIGN_LEFT ((uint32_t)MDMA_CTCR_PAM_1) /*!< Left Aligned (padded with 0s) */
AnnaBridge 172:65be27845400 427
AnnaBridge 172:65be27845400 428 /**
AnnaBridge 172:65be27845400 429 * @}
AnnaBridge 172:65be27845400 430 */
AnnaBridge 172:65be27845400 431
AnnaBridge 172:65be27845400 432 /** @defgroup MDMA_Source_burst MDMA Source burst
AnnaBridge 172:65be27845400 433 * @brief MDMA Source burst
AnnaBridge 172:65be27845400 434 * @{
AnnaBridge 172:65be27845400 435 */
AnnaBridge 172:65be27845400 436 #define MDMA_SOURCE_BURST_SINGLE ((uint32_t)0x00000000U) /*!< single transfer */
AnnaBridge 172:65be27845400 437 #define MDMA_SOURCE_BURST_2BEATS ((uint32_t)MDMA_CTCR_SBURST_0) /*!< Burst 2 beats */
AnnaBridge 172:65be27845400 438 #define MDMA_SOURCE_BURST_4BEATS ((uint32_t)MDMA_CTCR_SBURST_1) /*!< Burst 4 beats */
AnnaBridge 172:65be27845400 439 #define MDMA_SOURCE_BURST_8BEATS ((uint32_t)MDMA_CTCR_SBURST_0 | (uint32_t)MDMA_CTCR_SBURST_1) /*!< Burst 8 beats */
AnnaBridge 172:65be27845400 440 #define MDMA_SOURCE_BURST_16BEATS ((uint32_t)MDMA_CTCR_SBURST_2) /*!< Burst 16 beats */
AnnaBridge 172:65be27845400 441 #define MDMA_SOURCE_BURST_32BEATS ((uint32_t)MDMA_CTCR_SBURST_0 | (uint32_t)MDMA_CTCR_SBURST_2) /*!< Burst 32 beats */
AnnaBridge 172:65be27845400 442 #define MDMA_SOURCE_BURST_64BEATS ((uint32_t)MDMA_CTCR_SBURST_1 | (uint32_t)MDMA_CTCR_SBURST_2) /*!< Burst 64 beats */
AnnaBridge 172:65be27845400 443 #define MDMA_SOURCE_BURST_128BEATS ((uint32_t)MDMA_CTCR_SBURST) /*!< Burst 128 beats */
AnnaBridge 172:65be27845400 444
AnnaBridge 172:65be27845400 445 /**
AnnaBridge 172:65be27845400 446 * @}
AnnaBridge 172:65be27845400 447 */
AnnaBridge 172:65be27845400 448
AnnaBridge 172:65be27845400 449 /** @defgroup MDMA_Destination_burst MDMA Destination burst
AnnaBridge 172:65be27845400 450 * @brief MDMA Destination burst
AnnaBridge 172:65be27845400 451 * @{
AnnaBridge 172:65be27845400 452 */
AnnaBridge 172:65be27845400 453 #define MDMA_DEST_BURST_SINGLE ((uint32_t)0x00000000U) /*!< single transfer */
AnnaBridge 172:65be27845400 454 #define MDMA_DEST_BURST_2BEATS ((uint32_t)MDMA_CTCR_DBURST_0) /*!< Burst 2 beats */
AnnaBridge 172:65be27845400 455 #define MDMA_DEST_BURST_4BEATS ((uint32_t)MDMA_CTCR_DBURST_1) /*!< Burst 4 beats */
AnnaBridge 172:65be27845400 456 #define MDMA_DEST_BURST_8BEATS ((uint32_t)MDMA_CTCR_DBURST_0 | (uint32_t)MDMA_CTCR_DBURST_1) /*!< Burst 8 beats */
AnnaBridge 172:65be27845400 457 #define MDMA_DEST_BURST_16BEATS ((uint32_t)MDMA_CTCR_DBURST_2) /*!< Burst 16 beats */
AnnaBridge 172:65be27845400 458 #define MDMA_DEST_BURST_32BEATS ((uint32_t)MDMA_CTCR_DBURST_0 | (uint32_t)MDMA_CTCR_DBURST_2) /*!< Burst 32 beats */
AnnaBridge 172:65be27845400 459 #define MDMA_DEST_BURST_64BEATS ((uint32_t)MDMA_CTCR_DBURST_1 | (uint32_t)MDMA_CTCR_DBURST_2) /*!< Burst 64 beats */
AnnaBridge 172:65be27845400 460 #define MDMA_DEST_BURST_128BEATS ((uint32_t)MDMA_CTCR_DBURST) /*!< Burst 128 beats */
AnnaBridge 172:65be27845400 461
AnnaBridge 172:65be27845400 462 /**
AnnaBridge 172:65be27845400 463 * @}
AnnaBridge 172:65be27845400 464 */
AnnaBridge 172:65be27845400 465
AnnaBridge 172:65be27845400 466 /** @defgroup MDMA_interrupt_enable_definitions MDMA interrupt enable definitions
AnnaBridge 172:65be27845400 467 * @brief MDMA interrupt enable definitions
AnnaBridge 172:65be27845400 468 * @{
AnnaBridge 172:65be27845400 469 */
AnnaBridge 172:65be27845400 470 #define MDMA_IT_TE ((uint32_t)MDMA_CCR_TEIE) /*!< Transfer Error interrupt */
AnnaBridge 172:65be27845400 471 #define MDMA_IT_CTC ((uint32_t)MDMA_CCR_CTCIE) /*!< Channel Transfer Complete interrupt */
AnnaBridge 172:65be27845400 472 #define MDMA_IT_BRT ((uint32_t)MDMA_CCR_BRTIE) /*!< Block Repeat Transfer interrupt */
AnnaBridge 172:65be27845400 473 #define MDMA_IT_BT ((uint32_t)MDMA_CCR_BTIE) /*!< Block Transfer interrupt */
AnnaBridge 172:65be27845400 474 #define MDMA_IT_BFTC ((uint32_t)MDMA_CCR_TCIE) /*!< Buffer Transfer Complete interrupt */
AnnaBridge 172:65be27845400 475
AnnaBridge 172:65be27845400 476 /**
AnnaBridge 172:65be27845400 477 * @}
AnnaBridge 172:65be27845400 478 */
AnnaBridge 172:65be27845400 479
AnnaBridge 172:65be27845400 480 /** @defgroup MDMA_flag_definitions MDMA flag definitions
AnnaBridge 172:65be27845400 481 * @brief MDMA flag definitions
AnnaBridge 172:65be27845400 482 * @{
AnnaBridge 172:65be27845400 483 */
AnnaBridge 172:65be27845400 484 #define MDMA_FLAG_TE ((uint32_t)MDMA_CISR_TEIF) /*!< Transfer Error flag */
AnnaBridge 172:65be27845400 485 #define MDMA_FLAG_CTC ((uint32_t)MDMA_CISR_CTCIF) /*!< Channel Transfer Complete flag */
AnnaBridge 172:65be27845400 486 #define MDMA_FLAG_BRT ((uint32_t)MDMA_CISR_BRTIF) /*!< Block Repeat Transfer complete flag */
AnnaBridge 172:65be27845400 487 #define MDMA_FLAG_BT ((uint32_t)MDMA_CISR_BTIF) /*!< Block Transfer complete flag */
AnnaBridge 172:65be27845400 488 #define MDMA_FLAG_BFTC ((uint32_t)MDMA_CISR_TCIF) /*!< BuFfer Transfer complete flag */
AnnaBridge 172:65be27845400 489 #define MDMA_FLAG_CRQA ((uint32_t)MDMA_CISR_CRQA) /*!< Channel ReQest Active flag */
AnnaBridge 172:65be27845400 490
AnnaBridge 172:65be27845400 491 /**
AnnaBridge 172:65be27845400 492 * @}
AnnaBridge 172:65be27845400 493 */
AnnaBridge 172:65be27845400 494
AnnaBridge 172:65be27845400 495 /**
AnnaBridge 172:65be27845400 496 * @}
AnnaBridge 172:65be27845400 497 */
AnnaBridge 172:65be27845400 498
AnnaBridge 172:65be27845400 499 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 500
AnnaBridge 172:65be27845400 501 /** @defgroup MDMA_Exported_Macros MDMA Exported Macros
AnnaBridge 172:65be27845400 502 * @{
AnnaBridge 172:65be27845400 503 */
AnnaBridge 172:65be27845400 504
AnnaBridge 172:65be27845400 505 /**
AnnaBridge 172:65be27845400 506 * @brief Enable the specified MDMA Channel.
AnnaBridge 172:65be27845400 507 * @param __HANDLE__: MDMA handle
AnnaBridge 172:65be27845400 508 * @retval None
AnnaBridge 172:65be27845400 509 */
AnnaBridge 172:65be27845400 510 #define __HAL_MDMA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR |= MDMA_CCR_EN)
AnnaBridge 172:65be27845400 511
AnnaBridge 172:65be27845400 512 /**
AnnaBridge 172:65be27845400 513 * @brief Disable the specified MDMA Channel.
AnnaBridge 172:65be27845400 514 * @param __HANDLE__: MDMA handle
AnnaBridge 172:65be27845400 515 * @retval None
AnnaBridge 172:65be27845400 516 */
AnnaBridge 172:65be27845400 517 #define __HAL_MDMA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CCR &= ~MDMA_CCR_EN)
AnnaBridge 172:65be27845400 518
AnnaBridge 172:65be27845400 519 /**
AnnaBridge 172:65be27845400 520 * @brief Get the MDMA Channel pending flags.
AnnaBridge 172:65be27845400 521 * @param __HANDLE__: MDMA handle
AnnaBridge 172:65be27845400 522 * @param __FLAG__: Get the specified flag.
AnnaBridge 172:65be27845400 523 * This parameter can be any combination of the following values:
AnnaBridge 172:65be27845400 524 * @arg MDMA_FLAG_TE : Transfer Error flag.
AnnaBridge 172:65be27845400 525 * @arg MDMA_FLAG_CTC : Channel Transfer Complete flag.
AnnaBridge 172:65be27845400 526 * @arg MDMA_FLAG_BRT : Block Repeat Transfer flag.
AnnaBridge 172:65be27845400 527 * @arg MDMA_FLAG_BT : Block Transfer complete flag.
AnnaBridge 172:65be27845400 528 * @arg MDMA_FLAG_BFTC : BuFfer Transfer Complete flag.
AnnaBridge 172:65be27845400 529 * @arg MDMA_FLAG_CRQA : Channel ReQest Active flag.
AnnaBridge 172:65be27845400 530 * @retval The state of FLAG (SET or RESET).
AnnaBridge 172:65be27845400 531 */
AnnaBridge 172:65be27845400 532 #define __HAL_MDMA_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CISR & (__FLAG__))
AnnaBridge 172:65be27845400 533
AnnaBridge 172:65be27845400 534 /**
AnnaBridge 172:65be27845400 535 * @brief Clear the MDMA Stream pending flags.
AnnaBridge 172:65be27845400 536 * @param __HANDLE__: MDMA handle
AnnaBridge 172:65be27845400 537 * @param __FLAG__: specifies the flag to clear.
AnnaBridge 172:65be27845400 538 * This parameter can be any combination of the following values:
AnnaBridge 172:65be27845400 539 * @arg MDMA_FLAG_TE : Transfer Error flag.
AnnaBridge 172:65be27845400 540 * @arg MDMA_FLAG_CTC : Channel Transfer Complete flag.
AnnaBridge 172:65be27845400 541 * @arg MDMA_FLAG_BRT : Block Repeat Transfer flag.
AnnaBridge 172:65be27845400 542 * @arg MDMA_FLAG_BT : Block Transfer complete flag.
AnnaBridge 172:65be27845400 543 * @arg MDMA_FLAG_BFTC : BuFfer Transfer Complete flag.
AnnaBridge 172:65be27845400 544 * @retval None
AnnaBridge 172:65be27845400 545 */
AnnaBridge 172:65be27845400 546 #define __HAL_MDMA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CIFCR = (__FLAG__))
AnnaBridge 172:65be27845400 547
AnnaBridge 172:65be27845400 548 /**
AnnaBridge 172:65be27845400 549 * @brief Enables the specified MDMA Channel interrupts.
AnnaBridge 172:65be27845400 550 * @param __HANDLE__: MDMA handle
AnnaBridge 172:65be27845400 551 * @param __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled.
AnnaBridge 172:65be27845400 552 * This parameter can be any combination of the following values:
AnnaBridge 172:65be27845400 553 * @arg MDMA_IT_TE : Transfer Error interrupt mask
AnnaBridge 172:65be27845400 554 * @arg MDMA_IT_CTC : Channel Transfer Complete interrupt mask
AnnaBridge 172:65be27845400 555 * @arg MDMA_IT_BRT : Block Repeat Transfer interrupt mask
AnnaBridge 172:65be27845400 556 * @arg MDMA_IT_BT : Block Transfer interrupt mask
AnnaBridge 172:65be27845400 557 * @arg MDMA_IT_BFTC : BuFfer Transfer Complete interrupt mask
AnnaBridge 172:65be27845400 558 * @retval None
AnnaBridge 172:65be27845400 559 */
AnnaBridge 172:65be27845400 560 #define __HAL_MDMA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR |= (__INTERRUPT__))
AnnaBridge 172:65be27845400 561
AnnaBridge 172:65be27845400 562 /**
AnnaBridge 172:65be27845400 563 * @brief Disables the specified MDMA Channel interrupts.
AnnaBridge 172:65be27845400 564 * @param __HANDLE__: MDMA handle
AnnaBridge 172:65be27845400 565 * @param __INTERRUPT__: specifies the MDMA interrupt sources to be enabled or disabled.
AnnaBridge 172:65be27845400 566 * This parameter can be any combination of the following values:
AnnaBridge 172:65be27845400 567 * @arg MDMA_IT_TE : Transfer Error interrupt mask
AnnaBridge 172:65be27845400 568 * @arg MDMA_IT_CTC : Channel Transfer Complete interrupt mask
AnnaBridge 172:65be27845400 569 * @arg MDMA_IT_BRT : Block Repeat Transfer interrupt mask
AnnaBridge 172:65be27845400 570 * @arg MDMA_IT_BT : Block Transfer interrupt mask
AnnaBridge 172:65be27845400 571 * @arg MDMA_IT_BFTC : BuFfer Transfer Complete interrupt mask
AnnaBridge 172:65be27845400 572 * @retval None
AnnaBridge 172:65be27845400 573 */
AnnaBridge 172:65be27845400 574 #define __HAL_MDMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CCR &= ~(__INTERRUPT__))
AnnaBridge 172:65be27845400 575
AnnaBridge 172:65be27845400 576 /**
AnnaBridge 172:65be27845400 577 * @brief Checks whether the specified MDMA Channel interrupt is enabled or not.
AnnaBridge 172:65be27845400 578 * @param __HANDLE__: DMA handle
AnnaBridge 172:65be27845400 579 * @param __INTERRUPT__: specifies the DMA interrupt source to check.
AnnaBridge 172:65be27845400 580 * @arg MDMA_IT_TE : Transfer Error interrupt mask
AnnaBridge 172:65be27845400 581 * @arg MDMA_IT_CTC : Channel Transfer Complete interrupt mask
AnnaBridge 172:65be27845400 582 * @arg MDMA_IT_BRT : Block Repeat Transfer interrupt mask
AnnaBridge 172:65be27845400 583 * @arg MDMA_IT_BT : Block Transfer interrupt mask
AnnaBridge 172:65be27845400 584 * @arg MDMA_IT_BFTC : BuFfer Transfer Complete interrupt mask
AnnaBridge 172:65be27845400 585 * @retval The state of MDMA_IT (SET or RESET).
AnnaBridge 172:65be27845400 586 */
AnnaBridge 172:65be27845400 587 #define __HAL_MDMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CCR & (__INTERRUPT__)))
AnnaBridge 172:65be27845400 588
AnnaBridge 172:65be27845400 589 /**
AnnaBridge 172:65be27845400 590 * @}
AnnaBridge 172:65be27845400 591 */
AnnaBridge 172:65be27845400 592
AnnaBridge 172:65be27845400 593 /* Exported functions --------------------------------------------------------*/
AnnaBridge 172:65be27845400 594 /** @defgroup MDMA_Exported_Functions MDMA Exported Functions
AnnaBridge 172:65be27845400 595 * @{
AnnaBridge 172:65be27845400 596 */
AnnaBridge 172:65be27845400 597
AnnaBridge 172:65be27845400 598 /* Initialization and de-initialization functions *****************************/
AnnaBridge 172:65be27845400 599 /** @defgroup MDMA_Exported_Functions_Group1 Initialization and de-initialization functions
AnnaBridge 172:65be27845400 600 * @brief Initialization and de-initialization functions
AnnaBridge 172:65be27845400 601 * @{
AnnaBridge 172:65be27845400 602 */
AnnaBridge 172:65be27845400 603 HAL_StatusTypeDef HAL_MDMA_Init(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 604 HAL_StatusTypeDef HAL_MDMA_DeInit (MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 605 HAL_StatusTypeDef HAL_MDMA_ConfigPostRequestMask(MDMA_HandleTypeDef *hmdma, uint32_t MaskAddress, uint32_t MaskData);
AnnaBridge 172:65be27845400 606
AnnaBridge 172:65be27845400 607 HAL_StatusTypeDef HAL_MDMA_RegisterCallback(MDMA_HandleTypeDef *hmdma, HAL_MDMA_CallbackIDTypeDef CallbackID, void (* pCallback)(MDMA_HandleTypeDef *_hmdma));
AnnaBridge 172:65be27845400 608 HAL_StatusTypeDef HAL_MDMA_UnRegisterCallback(MDMA_HandleTypeDef *hmdma, HAL_MDMA_CallbackIDTypeDef CallbackID);
AnnaBridge 172:65be27845400 609
AnnaBridge 172:65be27845400 610 /**
AnnaBridge 172:65be27845400 611 * @}
AnnaBridge 172:65be27845400 612 */
AnnaBridge 172:65be27845400 613
AnnaBridge 172:65be27845400 614 /* Linked list operation functions ********************************************/
AnnaBridge 172:65be27845400 615 /** @defgroup MDMA_Exported_Functions_Group2 Linked List operation functions
AnnaBridge 172:65be27845400 616 * @brief Linked list operation functions
AnnaBridge 172:65be27845400 617 * @{
AnnaBridge 172:65be27845400 618 */
AnnaBridge 172:65be27845400 619
AnnaBridge 172:65be27845400 620 HAL_StatusTypeDef HAL_MDMA_LinkedList_CreateNode(MDMA_LinkNodeTypeDef *pNode, MDMA_LinkNodeConfTypeDef *pNodeConfig);
AnnaBridge 172:65be27845400 621 HAL_StatusTypeDef HAL_MDMA_LinkedList_AddNode(MDMA_HandleTypeDef *hmdma, MDMA_LinkNodeTypeDef *pNewNode, MDMA_LinkNodeTypeDef *pPrevNode);
AnnaBridge 172:65be27845400 622 HAL_StatusTypeDef HAL_MDMA_LinkedList_RemoveNode(MDMA_HandleTypeDef *hmdma, MDMA_LinkNodeTypeDef *pNode);
AnnaBridge 172:65be27845400 623 HAL_StatusTypeDef HAL_MDMA_LinkedList_EnableCircularMode(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 624 HAL_StatusTypeDef HAL_MDMA_LinkedList_DisableCircularMode(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 625
AnnaBridge 172:65be27845400 626
AnnaBridge 172:65be27845400 627 /**
AnnaBridge 172:65be27845400 628 * @}
AnnaBridge 172:65be27845400 629 */
AnnaBridge 172:65be27845400 630
AnnaBridge 172:65be27845400 631 /* IO operation functions *****************************************************/
AnnaBridge 172:65be27845400 632 /** @defgroup MDMA_Exported_Functions_Group3 I/O operation functions
AnnaBridge 172:65be27845400 633 * @brief I/O operation functions
AnnaBridge 172:65be27845400 634 * @{
AnnaBridge 172:65be27845400 635 */
AnnaBridge 172:65be27845400 636 HAL_StatusTypeDef HAL_MDMA_Start (MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount);
AnnaBridge 172:65be27845400 637 HAL_StatusTypeDef HAL_MDMA_Start_IT(MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount);
AnnaBridge 172:65be27845400 638 HAL_StatusTypeDef HAL_MDMA_Abort(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 639 HAL_StatusTypeDef HAL_MDMA_Abort_IT(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 640 HAL_StatusTypeDef HAL_MDMA_PollForTransfer(MDMA_HandleTypeDef *hmdma, HAL_MDMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout);
AnnaBridge 172:65be27845400 641 HAL_StatusTypeDef HAL_MDMA_GenerateSWRequest(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 642 void HAL_MDMA_IRQHandler(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 643
AnnaBridge 172:65be27845400 644 /**
AnnaBridge 172:65be27845400 645 * @}
AnnaBridge 172:65be27845400 646 */
AnnaBridge 172:65be27845400 647
AnnaBridge 172:65be27845400 648 /* Peripheral State and Error functions ***************************************/
AnnaBridge 172:65be27845400 649 /** @defgroup MDMA_Exported_Functions_Group4 Peripheral State functions
AnnaBridge 172:65be27845400 650 * @brief Peripheral State functions
AnnaBridge 172:65be27845400 651 * @{
AnnaBridge 172:65be27845400 652 */
AnnaBridge 172:65be27845400 653 HAL_MDMA_StateTypeDef HAL_MDMA_GetState(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 654 uint32_t HAL_MDMA_GetError(MDMA_HandleTypeDef *hmdma);
AnnaBridge 172:65be27845400 655
AnnaBridge 172:65be27845400 656 /**
AnnaBridge 172:65be27845400 657 * @}
AnnaBridge 172:65be27845400 658 */
AnnaBridge 172:65be27845400 659
AnnaBridge 172:65be27845400 660 /**
AnnaBridge 172:65be27845400 661 * @}
AnnaBridge 172:65be27845400 662 */
AnnaBridge 172:65be27845400 663
AnnaBridge 172:65be27845400 664 /* Private types -------------------------------------------------------------*/
AnnaBridge 172:65be27845400 665 /** @defgroup MDMA_Private_Types MDMA Private Types
AnnaBridge 172:65be27845400 666 * @{
AnnaBridge 172:65be27845400 667 */
AnnaBridge 172:65be27845400 668
AnnaBridge 172:65be27845400 669 /**
AnnaBridge 172:65be27845400 670 * @}
AnnaBridge 172:65be27845400 671 */
AnnaBridge 172:65be27845400 672
AnnaBridge 172:65be27845400 673 /* Private defines -----------------------------------------------------------*/
AnnaBridge 172:65be27845400 674 /** @defgroup MDMA_Private_Defines MDMA Private Defines
AnnaBridge 172:65be27845400 675 * @{
AnnaBridge 172:65be27845400 676 */
AnnaBridge 172:65be27845400 677
AnnaBridge 172:65be27845400 678 /**
AnnaBridge 172:65be27845400 679 * @}
AnnaBridge 172:65be27845400 680 */
AnnaBridge 172:65be27845400 681
AnnaBridge 172:65be27845400 682 /* Private variables ---------------------------------------------------------*/
AnnaBridge 172:65be27845400 683 /** @defgroup MDMA_Private_Variables MDMA Private Variables
AnnaBridge 172:65be27845400 684 * @{
AnnaBridge 172:65be27845400 685 */
AnnaBridge 172:65be27845400 686
AnnaBridge 172:65be27845400 687 /**
AnnaBridge 172:65be27845400 688 * @}
AnnaBridge 172:65be27845400 689 */
AnnaBridge 172:65be27845400 690
AnnaBridge 172:65be27845400 691 /* Private constants ---------------------------------------------------------*/
AnnaBridge 172:65be27845400 692 /** @defgroup MDMA_Private_Constants MDMA Private Constants
AnnaBridge 172:65be27845400 693 * @{
AnnaBridge 172:65be27845400 694 */
AnnaBridge 172:65be27845400 695
AnnaBridge 172:65be27845400 696 /**
AnnaBridge 172:65be27845400 697 * @}
AnnaBridge 172:65be27845400 698 */
AnnaBridge 172:65be27845400 699
AnnaBridge 172:65be27845400 700 /* Private macros ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 701 /** @defgroup MDMA_Private_Macros MDMA Private Macros
AnnaBridge 172:65be27845400 702 * @{
AnnaBridge 172:65be27845400 703 */
AnnaBridge 172:65be27845400 704
AnnaBridge 172:65be27845400 705 #define IS_MDMA_LEVEL_COMPLETE(__LEVEL__) (((__LEVEL__) == HAL_MDMA_FULL_TRANSFER ) || \
AnnaBridge 172:65be27845400 706 ((__LEVEL__) == HAL_MDMA_BUFFER_TRANSFER )|| \
AnnaBridge 172:65be27845400 707 ((__LEVEL__) == HAL_MDMA_BLOCK_TRANSFER ) || \
AnnaBridge 172:65be27845400 708 ((__LEVEL__) == HAL_MDMA_REPEAT_BLOCK_TRANSFER ))
AnnaBridge 172:65be27845400 709
AnnaBridge 172:65be27845400 710
AnnaBridge 172:65be27845400 711 #define IS_MDMA_PRIORITY(__PRIORITY__) (((__PRIORITY__) == MDMA_PRIORITY_LOW ) || \
AnnaBridge 172:65be27845400 712 ((__PRIORITY__) == MDMA_PRIORITY_MEDIUM) || \
AnnaBridge 172:65be27845400 713 ((__PRIORITY__) == MDMA_PRIORITY_HIGH) || \
AnnaBridge 172:65be27845400 714 ((__PRIORITY__) == MDMA_PRIORITY_VERY_HIGH))
AnnaBridge 172:65be27845400 715
AnnaBridge 172:65be27845400 716 #define IS_MDMA_ENDIANNESS_MODE(__ENDIANNESS__) (((__ENDIANNESS__) == MDMA_LITTLE_ENDIANNESS_PRESERVE ) || \
AnnaBridge 172:65be27845400 717 ((__ENDIANNESS__) == MDMA_LITTLE_BYTE_ENDIANNESS_EXCHANGE) || \
AnnaBridge 172:65be27845400 718 ((__ENDIANNESS__) == MDMA_LITTLE_HALFWORD_ENDIANNESS_EXCHANGE) || \
AnnaBridge 172:65be27845400 719 ((__ENDIANNESS__) == MDMA_LITTLE_WORD_ENDIANNESS_EXCHANGE))
AnnaBridge 172:65be27845400 720
AnnaBridge 172:65be27845400 721
AnnaBridge 172:65be27845400 722 #define IS_MDMA_REQUEST(__REQUEST__) (((__REQUEST__) == MDMA_REQUEST_SW ) || ((__REQUEST__) <= MDMA_REQUEST_SDMMC1_END_DATA))
AnnaBridge 172:65be27845400 723
AnnaBridge 172:65be27845400 724 #define IS_MDMA_SOURCE_INC(__INC__) (((__INC__) == MDMA_SRC_INC_DISABLE ) || \
AnnaBridge 172:65be27845400 725 ((__INC__) == MDMA_SRC_INC_BYTE ) || \
AnnaBridge 172:65be27845400 726 ((__INC__) == MDMA_SRC_INC_HALFWORD ) || \
AnnaBridge 172:65be27845400 727 ((__INC__) == MDMA_SRC_INC_WORD ) || \
AnnaBridge 172:65be27845400 728 ((__INC__) == MDMA_SRC_INC_DOUBLEWORD) || \
AnnaBridge 172:65be27845400 729 ((__INC__) == MDMA_SRC_DEC_BYTE) || \
AnnaBridge 172:65be27845400 730 ((__INC__) == MDMA_SRC_DEC_HALFWORD) || \
AnnaBridge 172:65be27845400 731 ((__INC__) == MDMA_SRC_DEC_WORD) || \
AnnaBridge 172:65be27845400 732 ((__INC__) == MDMA_SRC_DEC_DOUBLEWORD))
AnnaBridge 172:65be27845400 733
AnnaBridge 172:65be27845400 734 #define IS_MDMA_DESTINATION_INC(__INC__) (((__INC__) == MDMA_DEST_INC_DISABLE ) || \
AnnaBridge 172:65be27845400 735 ((__INC__) == MDMA_DEST_INC_BYTE ) || \
AnnaBridge 172:65be27845400 736 ((__INC__) == MDMA_DEST_INC_HALFWORD ) || \
AnnaBridge 172:65be27845400 737 ((__INC__) == MDMA_DEST_INC_WORD ) || \
AnnaBridge 172:65be27845400 738 ((__INC__) == MDMA_DEST_INC_DOUBLEWORD) || \
AnnaBridge 172:65be27845400 739 ((__INC__) == MDMA_DEST_DEC_BYTE) || \
AnnaBridge 172:65be27845400 740 ((__INC__) == MDMA_DEST_DEC_HALFWORD) || \
AnnaBridge 172:65be27845400 741 ((__INC__) == MDMA_DEST_DEC_WORD) || \
AnnaBridge 172:65be27845400 742 ((__INC__) == MDMA_DEST_DEC_DOUBLEWORD))
AnnaBridge 172:65be27845400 743
AnnaBridge 172:65be27845400 744 #define IS_MDMA_SOURCE_DATASIZE(__SIZE__) (((__SIZE__) == MDMA_SRC_DATASIZE_BYTE ) || \
AnnaBridge 172:65be27845400 745 ((__SIZE__) == MDMA_SRC_DATASIZE_HALFWORD ) || \
AnnaBridge 172:65be27845400 746 ((__SIZE__) == MDMA_SRC_DATASIZE_WORD ) || \
AnnaBridge 172:65be27845400 747 ((__SIZE__) == MDMA_SRC_DATASIZE_DOUBLEWORD))
AnnaBridge 172:65be27845400 748
AnnaBridge 172:65be27845400 749 #define IS_MDMA_DESTINATION_DATASIZE(__SIZE__) (((__SIZE__) == MDMA_DEST_DATASIZE_BYTE ) || \
AnnaBridge 172:65be27845400 750 ((__SIZE__) == MDMA_DEST_DATASIZE_HALFWORD ) || \
AnnaBridge 172:65be27845400 751 ((__SIZE__) == MDMA_DEST_DATASIZE_WORD ) || \
AnnaBridge 172:65be27845400 752 ((__SIZE__) == MDMA_DEST_DATASIZE_DOUBLEWORD))
AnnaBridge 172:65be27845400 753
AnnaBridge 172:65be27845400 754 #define IS_MDMA_DATA_ALIGNMENT(__ALIGNMENT__) (((__ALIGNMENT__) == MDMA_DATAALIGN_PACKENABLE ) || \
AnnaBridge 172:65be27845400 755 ((__ALIGNMENT__) == MDMA_DATAALIGN_RIGHT ) || \
AnnaBridge 172:65be27845400 756 ((__ALIGNMENT__) == MDMA_DATAALIGN_RIGHT_SIGNED ) || \
AnnaBridge 172:65be27845400 757 ((__ALIGNMENT__) == MDMA_DATAALIGN_LEFT))
AnnaBridge 172:65be27845400 758
AnnaBridge 172:65be27845400 759
AnnaBridge 172:65be27845400 760 #define IS_MDMA_SOURCE_BURST(__BURST__) (((__BURST__) == MDMA_SOURCE_BURST_SINGLE ) || \
AnnaBridge 172:65be27845400 761 ((__BURST__) == MDMA_SOURCE_BURST_2BEATS ) || \
AnnaBridge 172:65be27845400 762 ((__BURST__) == MDMA_SOURCE_BURST_4BEATS ) || \
AnnaBridge 172:65be27845400 763 ((__BURST__) == MDMA_SOURCE_BURST_8BEATS) || \
AnnaBridge 172:65be27845400 764 ((__BURST__) == MDMA_SOURCE_BURST_16BEATS) || \
AnnaBridge 172:65be27845400 765 ((__BURST__) == MDMA_SOURCE_BURST_32BEATS) || \
AnnaBridge 172:65be27845400 766 ((__BURST__) == MDMA_SOURCE_BURST_64BEATS) || \
AnnaBridge 172:65be27845400 767 ((__BURST__) == MDMA_SOURCE_BURST_128BEATS))
AnnaBridge 172:65be27845400 768
AnnaBridge 172:65be27845400 769
AnnaBridge 172:65be27845400 770 #define IS_MDMA_DESTINATION_BURST(__BURST__) (((__BURST__) == MDMA_DEST_BURST_SINGLE ) || \
AnnaBridge 172:65be27845400 771 ((__BURST__) == MDMA_DEST_BURST_2BEATS ) || \
AnnaBridge 172:65be27845400 772 ((__BURST__) == MDMA_DEST_BURST_4BEATS ) || \
AnnaBridge 172:65be27845400 773 ((__BURST__) == MDMA_DEST_BURST_8BEATS) || \
AnnaBridge 172:65be27845400 774 ((__BURST__) == MDMA_DEST_BURST_16BEATS) || \
AnnaBridge 172:65be27845400 775 ((__BURST__) == MDMA_DEST_BURST_32BEATS) || \
AnnaBridge 172:65be27845400 776 ((__BURST__) == MDMA_DEST_BURST_64BEATS) || \
AnnaBridge 172:65be27845400 777 ((__BURST__) == MDMA_DEST_BURST_128BEATS))
AnnaBridge 172:65be27845400 778
AnnaBridge 172:65be27845400 779 #define IS_MDMA_TRANSFER_TRIGGER_MODE(__MODE__) (((__MODE__) == MDMA_BUFFER_TRANSFER ) || \
AnnaBridge 172:65be27845400 780 ((__MODE__) == MDMA_BLOCK_TRANSFER ) || \
AnnaBridge 172:65be27845400 781 ((__MODE__) == MDMA_REPEAT_BLOCK_TRANSFER ) || \
AnnaBridge 172:65be27845400 782 ((__MODE__) == MDMA_FULL_TRANSFER))
AnnaBridge 172:65be27845400 783
AnnaBridge 172:65be27845400 784 #define IS_MDMA_BUFFER_TRANSFER_LENGTH(__LENGTH__) (((__LENGTH__) >= 0x00000001U) && ((__LENGTH__) < 0x000000FFU))
AnnaBridge 172:65be27845400 785
AnnaBridge 172:65be27845400 786 #define IS_MDMA_BLOCK_COUNT(__COUNT__) (((__COUNT__) > 0U ) && ((__COUNT__) <= 4096U))
AnnaBridge 172:65be27845400 787
AnnaBridge 172:65be27845400 788 #define IS_MDMA_TRANSFER_LENGTH(SIZE) (((SIZE) > 0U) && ((SIZE) <= 65536U))
AnnaBridge 172:65be27845400 789
AnnaBridge 172:65be27845400 790 #define IS_MDMA_BLOCK_ADDR_OFFSET(__BLOCK_ADD_OFFSET__) (((__BLOCK_ADD_OFFSET__) > (-65536)) && ((__BLOCK_ADD_OFFSET__) < 65536))
AnnaBridge 172:65be27845400 791
AnnaBridge 172:65be27845400 792 /**
AnnaBridge 172:65be27845400 793 * @}
AnnaBridge 172:65be27845400 794 */
AnnaBridge 172:65be27845400 795
AnnaBridge 172:65be27845400 796 /* Private functions prototypes ----------------------------------------------*/
AnnaBridge 172:65be27845400 797 /** @defgroup MDMA_Private_Functions_Prototypes MDMA Private Functions Prototypes
AnnaBridge 172:65be27845400 798 * @{
AnnaBridge 172:65be27845400 799 */
AnnaBridge 172:65be27845400 800
AnnaBridge 172:65be27845400 801 /**
AnnaBridge 172:65be27845400 802 * @}
AnnaBridge 172:65be27845400 803 */
AnnaBridge 172:65be27845400 804
AnnaBridge 172:65be27845400 805 /* Private functions ---------------------------------------------------------*/
AnnaBridge 172:65be27845400 806 /** @defgroup MDMA_Private_Functions MDMA Private Functions
AnnaBridge 172:65be27845400 807 * @{
AnnaBridge 172:65be27845400 808 */
AnnaBridge 172:65be27845400 809
AnnaBridge 172:65be27845400 810 /**
AnnaBridge 172:65be27845400 811 * @}
AnnaBridge 172:65be27845400 812 */
AnnaBridge 172:65be27845400 813
AnnaBridge 172:65be27845400 814 /**
AnnaBridge 172:65be27845400 815 * @}
AnnaBridge 172:65be27845400 816 */
AnnaBridge 172:65be27845400 817
AnnaBridge 172:65be27845400 818 /**
AnnaBridge 172:65be27845400 819 * @}
AnnaBridge 172:65be27845400 820 */
AnnaBridge 172:65be27845400 821
AnnaBridge 172:65be27845400 822 #ifdef __cplusplus
AnnaBridge 172:65be27845400 823 }
AnnaBridge 172:65be27845400 824 #endif
AnnaBridge 172:65be27845400 825
AnnaBridge 172:65be27845400 826 #endif /* STM32H7xx_HAL_MDMA_H */
AnnaBridge 172:65be27845400 827
AnnaBridge 172:65be27845400 828 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/