![]() |
|
|||
File indexing completed on 2025-05-11 08:23:37
0001 /** 0002 ****************************************************************************** 0003 * @file stm32h7xx_ll_mdma.h 0004 * @author MCD Application Team 0005 * @brief Header file of MDMA LL module. 0006 ****************************************************************************** 0007 * @attention 0008 * 0009 * Copyright (c) 2017 STMicroelectronics. 0010 * All rights reserved. 0011 * 0012 * This software is licensed under terms that can be found in the LICENSE file 0013 * in the root directory of this software component. 0014 * If no LICENSE file comes with this software, it is provided AS-IS. 0015 * 0016 ****************************************************************************** 0017 */ 0018 0019 /* Define to prevent recursive inclusion -------------------------------------*/ 0020 #ifndef STM32H7xx_LL_MDMA_H 0021 #define STM32H7xx_LL_MDMA_H 0022 0023 #ifdef __cplusplus 0024 extern "C" { 0025 #endif 0026 0027 /* Includes ------------------------------------------------------------------*/ 0028 #include "stm32h7xx.h" 0029 0030 /** @addtogroup STM32H7xx_LL_Driver 0031 * @{ 0032 */ 0033 0034 #if defined (MDMA) 0035 0036 /** @defgroup MDMA_LL MDMA 0037 * @ingroup RTEMSBSPsARMSTM32H7 0038 * @{ 0039 */ 0040 0041 /* Private types -------------------------------------------------------------*/ 0042 /* Private variables ---------------------------------------------------------*/ 0043 /** @defgroup MDMA_LL_Private_Variables MDMA Private Variables 0044 * @ingroup RTEMSBSPsARMSTM32H7 0045 * @{ 0046 */ 0047 /* Array used to get the MDMA channel register offset versus channel index LL_MDMA_CHANNEL_x */ 0048 static const uint32_t LL_MDMA_CH_OFFSET_TAB[] = 0049 { 0050 (uint32_t)(MDMA_Channel0_BASE - MDMA_BASE), 0051 (uint32_t)(MDMA_Channel1_BASE - MDMA_BASE), 0052 (uint32_t)(MDMA_Channel2_BASE - MDMA_BASE), 0053 (uint32_t)(MDMA_Channel3_BASE - MDMA_BASE), 0054 (uint32_t)(MDMA_Channel4_BASE - MDMA_BASE), 0055 (uint32_t)(MDMA_Channel5_BASE - MDMA_BASE), 0056 (uint32_t)(MDMA_Channel6_BASE - MDMA_BASE), 0057 (uint32_t)(MDMA_Channel7_BASE - MDMA_BASE), 0058 (uint32_t)(MDMA_Channel8_BASE - MDMA_BASE), 0059 (uint32_t)(MDMA_Channel9_BASE - MDMA_BASE), 0060 (uint32_t)(MDMA_Channel10_BASE - MDMA_BASE), 0061 (uint32_t)(MDMA_Channel11_BASE - MDMA_BASE), 0062 (uint32_t)(MDMA_Channel12_BASE - MDMA_BASE), 0063 (uint32_t)(MDMA_Channel13_BASE - MDMA_BASE), 0064 (uint32_t)(MDMA_Channel14_BASE - MDMA_BASE), 0065 (uint32_t)(MDMA_Channel15_BASE - MDMA_BASE) 0066 }; 0067 0068 /** 0069 * @} 0070 */ 0071 0072 /* Private constants ---------------------------------------------------------*/ 0073 /** @defgroup MDMA_LL_Private_Constants MDMA Private Constants 0074 * @ingroup RTEMSBSPsARMSTM32H7 0075 * @{ 0076 */ 0077 /** 0078 * @} 0079 */ 0080 0081 0082 /* Private macros ------------------------------------------------------------*/ 0083 /* Exported types ------------------------------------------------------------*/ 0084 #if defined(USE_FULL_LL_DRIVER) || defined(__rtems__) 0085 /** @defgroup MDMA_LL_ES_INIT MDMA Exported Init structure 0086 * @ingroup RTEMSBSPsARMSTM32H7 0087 * @{ 0088 */ 0089 typedef struct 0090 { 0091 uint32_t SrcAddress; /*!< Specifies the transfer source address 0092 This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. 0093 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceAddress() */ 0094 0095 uint32_t DstAddress; /*!< Specifies the transfer destination address 0096 This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. 0097 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationAddress() */ 0098 0099 uint32_t RequestMode; /*!< Specifies the request mode Hardware or Software. 0100 This parameter can be a value of @ref MDMA_LL_EC_REQUEST_MODE 0101 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetRequestMode() */ 0102 0103 uint32_t TriggerMode; /*!< Specifies the transfer trigger mode. 0104 This parameter can be a value of @ref MDMA_LL_EC_TRIGGER_MODE 0105 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetTriggerMode() */ 0106 0107 uint32_t HWTrigger; /*!< Specifies the HW transfer trigger used when RequestMode is HW. 0108 This parameter can be a value of @ref MDMA_LL_EC_HW_TRIGGER_SELCTION 0109 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetHWTrigger() */ 0110 0111 uint32_t BlockDataLength; /*!< Specifies the length of a block transfer in bytes 0112 This parameter must be a value between Min_Data = 0 and Max_Data = 0x00010000. 0113 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkDataLength() */ 0114 0115 uint32_t BlockRepeatCount; /*!< Specifies the Block Repeat Count 0116 This parameter must be a value between Min_Data = 0 and Max_Data = 0x00000FFF. 0117 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatCount() */ 0118 0119 uint32_t BlockRepeatDestAddrUpdateMode; /*!< Specifies the block repeat destination address update mode. 0120 This parameter can be a value of @ref MDMA_LL_EC_BLK_RPT_DEST_ADDR_UPDATE_MODE 0121 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatDestAddrUpdate() */ 0122 0123 uint32_t BlockRepeatSrcAddrUpdateMode; /*!< Specifies the block repeat source address update mode. 0124 This parameter can be a value of @ref MDMA_LL_EC_SRC_BLK_RPT_ADDR_UPDATE_MODE 0125 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatSrcAddrUpdate() */ 0126 0127 uint32_t BlockRepeatDestAddrUpdateVal; /*!< Specifies the block repeat destination address update value. 0128 This parameter can be a value Between 0 to 0x0000FFFF 0129 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRptDestAddrUpdateValue() */ 0130 0131 uint32_t BlockRepeatSrcAddrUpdateVal; /*!< Specifies the block repeat source address update value. 0132 This parameter can be a value Between 0 to 0x0000FFFF 0133 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRptSrcAddrUpdateValue() */ 0134 0135 uint32_t LinkAddress; /*!< Specifies the linked list next transfer node address. 0136 This parameter can be a value Between 0 to 0xFFFFFFFF 0137 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetLinkAddress() */ 0138 0139 uint32_t WordEndianess; /*!< Specifies the Word transfer endianness 0140 This parameter can be a value of @ref MDMA_LL_EC_WORD_ENDIANNESS. 0141 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetWordEndianness() */ 0142 0143 uint32_t HalfWordEndianess; /*!< Specifies the Half Word transfer endianness 0144 This parameter can be a value of @ref MDMA_LL_EC_HALFWORD_ENDIANNESS. 0145 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetHalfWordEndianness() */ 0146 0147 uint32_t ByteEndianess; /*!< Specifies the Byte transfer endianness 0148 This parameter can be a value of @ref MDMA_LL_EC_BYTE_ENDIANNESS. 0149 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetByteEndianness() */ 0150 0151 uint32_t Priority; /*!< Specifies the channel priority level. 0152 This parameter can be a value of @ref MDMA_LL_EC_PRIORITY 0153 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetChannelPriorityLevel() */ 0154 0155 uint32_t BufferableWriteMode; /*!< Specifies the transfer Bufferable Write Mode. 0156 This parameter can be a value of @ref MDMA_LL_EC_BUFF_WRITE_MODE 0157 This feature can be modified afterwards using unitary function @ref LL_MDMA_EnableBufferableWrMode() 0158 and LL_MDMA_DisableBufferableWrMode */ 0159 0160 0161 uint32_t PaddingAlignment; /*!< Specifies the transfer Padding and Alignment. 0162 This parameter can be a value of @ref MDMA_LL_EC_PADDING_ALIGNMENT_MODE 0163 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetPaddingAlignment() */ 0164 0165 uint32_t PackMode; /*!< Specifies the transfer Packing enabled or disabled. 0166 This parameter can be a value of @ref MDMA_LL_EC_PACKING_MODE 0167 This feature can be modified afterwards using unitary function @ref LL_MDMA_EnablePacking() 0168 and LL_MDMA_DisablePacking() */ 0169 0170 uint32_t BufferTransferLength; /*!< Specifies the length of a buffer transfer in bytes 0171 This parameter must be a value between Min_Data = 0 and Max_Data = 0x0000007F. 0172 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBufferTransferLength() */ 0173 0174 uint32_t DestBurst; /*!< Specifies the destination burst size. 0175 This parameter can be a value of @ref MDMA_LL_EC_DEST_BURST 0176 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationBurstSize() */ 0177 0178 uint32_t SrctBurst; /*!< Specifies the source burst size. 0179 This parameter can be a value of @ref MDMA_LL_EC_SRC_BURST 0180 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceBurstSize() */ 0181 0182 uint32_t DestIncSize; /*!< Specifies the destination increment size. 0183 This parameter can be a value of @ref MDMA_LL_EC_DEST_INC_OFFSET_SIZE 0184 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationIncSize() */ 0185 0186 uint32_t SrcIncSize; /*!< Specifies the source increment size. 0187 This parameter can be a value of @ref MDMA_LL_EC_SRC_INC_OFFSET_SIZE 0188 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceIncSize() */ 0189 0190 uint32_t DestDataSize; /*!< Specifies the destination data size. 0191 This parameter can be a value of @ref MDMA_LL_EC_DEST_DATA_SIZE 0192 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationDataSize() */ 0193 0194 uint32_t SrcDataSize; /*!< Specifies the source data size. 0195 This parameter can be a value of @ref MDMA_LL_EC_SRC_DATA_SIZE 0196 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceDataSize() */ 0197 0198 uint32_t DestIncMode; /*!< Specifies the destination increment mode. 0199 This parameter can be a value of @ref MDMA_LL_EC_DEST_INC_MODE 0200 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationIncMode() */ 0201 0202 uint32_t SrcIncMode; /*!< Specifies the source increment mode. 0203 This parameter can be a value of @ref MDMA_LL_EC_SRC_INC_MODE 0204 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceIncMode() */ 0205 0206 0207 uint32_t DestBus; /*!< Specifies the destination transfer bus, System AXI or AHB/TCM bus. 0208 This parameter can be a value of @ref MDMA_LL_EC_DEST_BUS 0209 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestBusSelection() */ 0210 0211 uint32_t SrcBus; /*!< Specifies the source transfer bus, System AXI or AHB/TCM bus. 0212 This parameter can be a value of @ref MDMA_LL_EC_SRC_BUS 0213 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSrcBusSelection() */ 0214 0215 uint32_t MaskAddress; /*!< Specifies the address to be updated (written) with MaskData after a request is served. 0216 MaskAddress and MaskData could be used to automatically clear a peripheral flag when the request is served 0217 This parameter can be a value Between 0 to 0xFFFFFFFF 0218 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetMaskAddress() */ 0219 0220 uint32_t MaskData; /*!< Specifies the value to be written to MaskAddress after a request is served. 0221 MaskAddress and MaskData could be used to automatically clear a peripheral flag when the request is served 0222 This parameter can be a value Between 0 to 0xFFFFFFFF 0223 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetMaskData() */ 0224 0225 } LL_MDMA_InitTypeDef; 0226 0227 /** 0228 * @brief LL MDMA linked list node structure definition 0229 * @note The Linked list node allows to define a new MDMA configuration 0230 * (CTCR ,CBNDTR ,CSAR ,CDAR ,CBRUR, CLAR, CTBR, CMAR and CMDR registers). 0231 * When CLAR register is configured to a non NULL value , each time a transfer ends, 0232 * a new configuration (linked list node) is automatically loaded from the address given in CLAR register. 0233 */ 0234 typedef struct 0235 { 0236 __IO uint32_t CTCR; /*!< New CTCR register configuration for the given MDMA linked list node */ 0237 __IO uint32_t CBNDTR; /*!< New CBNDTR register configuration for the given MDMA linked list node */ 0238 __IO uint32_t CSAR; /*!< New CSAR register configuration for the given MDMA linked list node */ 0239 __IO uint32_t CDAR; /*!< New CDAR register configuration for the given MDMA linked list node */ 0240 __IO uint32_t CBRUR; /*!< New CBRUR register configuration for the given MDMA linked list node */ 0241 __IO uint32_t CLAR; /*!< New CLAR register configuration for the given MDMA linked list node */ 0242 __IO uint32_t CTBR; /*!< New CTBR register configuration for the given MDMA linked list node */ 0243 __IO uint32_t Reserved; /*!< Reserved register*/ 0244 __IO uint32_t CMAR; /*!< New CMAR register configuration for the given MDMA linked list node */ 0245 __IO uint32_t CMDR; /*!< New CMDR register configuration for the given MDMA linked list node */ 0246 0247 }LL_MDMA_LinkNodeTypeDef; 0248 0249 /** 0250 * @} 0251 */ 0252 #endif /*USE_FULL_LL_DRIVER*/ 0253 /* Exported constants --------------------------------------------------------*/ 0254 /** @defgroup MDMA_LL_Exported_Constants MDMA Exported Constants 0255 * @ingroup RTEMSBSPsARMSTM32H7 0256 * @{ 0257 */ 0258 0259 /** @defgroup MDMA_LL_EC_CHANNEL CHANNEL 0260 * @ingroup RTEMSBSPsARMSTM32H7 0261 * @{ 0262 */ 0263 #define LL_MDMA_CHANNEL_0 0x00000000U 0264 #define LL_MDMA_CHANNEL_1 0x00000001U 0265 #define LL_MDMA_CHANNEL_2 0x00000002U 0266 #define LL_MDMA_CHANNEL_3 0x00000003U 0267 #define LL_MDMA_CHANNEL_4 0x00000004U 0268 #define LL_MDMA_CHANNEL_5 0x00000005U 0269 #define LL_MDMA_CHANNEL_6 0x00000006U 0270 #define LL_MDMA_CHANNEL_7 0x00000007U 0271 #define LL_MDMA_CHANNEL_8 0x00000008U 0272 #define LL_MDMA_CHANNEL_9 0x00000009U 0273 #define LL_MDMA_CHANNEL_10 0x0000000AU 0274 #define LL_MDMA_CHANNEL_11 0x0000000BU 0275 #define LL_MDMA_CHANNEL_12 0x0000000CU 0276 #define LL_MDMA_CHANNEL_13 0x0000000DU 0277 #define LL_MDMA_CHANNEL_14 0x0000000EU 0278 #define LL_MDMA_CHANNEL_15 0x0000000FU 0279 #define LL_MDMA_CHANNEL_ALL 0xFFFF0000U 0280 /** 0281 * @} 0282 */ 0283 0284 /** @defgroup MDMA_LL_EC_WORD_ENDIANNESS Word Endianness 0285 * @ingroup RTEMSBSPsARMSTM32H7 0286 * @{ 0287 */ 0288 #define LL_MDMA_WORD_ENDIANNESS_PRESERVE 0x00000000U /*!< Little endianness preserved for words */ 0289 #define LL_MDMA_WORD_ENDIANNESS_EXCHANGE MDMA_CCR_WEX /*!< word order exchanged when destination data size is double word */ 0290 0291 /** 0292 * @} 0293 */ 0294 0295 /** @defgroup MDMA_LL_EC_HALFWORD_ENDIANNESS Half Word Endianness 0296 * @ingroup RTEMSBSPsARMSTM32H7 0297 * @{ 0298 */ 0299 #define LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE 0x00000000U /*!< Little endianness preserved for half words */ 0300 #define LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE MDMA_CCR_HEX /*!< half word order exchanged when destination data size is word or double word */ 0301 0302 /** 0303 * @} 0304 */ 0305 0306 /** @defgroup MDMA_LL_EC_BYTE_ENDIANNESS Byte Endianness 0307 * @ingroup RTEMSBSPsARMSTM32H7 0308 * @{ 0309 */ 0310 #define LL_MDMA_BYTE_ENDIANNESS_PRESERVE 0x00000000U /*!< Little endianness preserved for bytes */ 0311 #define LL_MDMA_BYTE_ENDIANNESS_EXCHANGE MDMA_CCR_BEX /*!< byte order exchanged when destination data size is half word , word or double word */ 0312 0313 /** 0314 * @} 0315 */ 0316 0317 /** @defgroup MDMA_LL_EC_PRIORITY Transfer Priority level 0318 * @ingroup RTEMSBSPsARMSTM32H7 0319 * @{ 0320 */ 0321 #define LL_MDMA_PRIORITY_LOW 0x00000000U /*!< Priority level : Low */ 0322 #define LL_MDMA_PRIORITY_MEDIUM MDMA_CCR_PL_0 /*!< Priority level : Medium */ 0323 #define LL_MDMA_PRIORITY_HIGH MDMA_CCR_PL_1 /*!< Priority level : High */ 0324 #define LL_MDMA_PRIORITY_VERYHIGH MDMA_CCR_PL /*!< Priority level : Very_High */ 0325 /** 0326 * @} 0327 */ 0328 0329 /** @defgroup MDMA_LL_EC_BUFF_WRITE_MODE Bufferable Write Mode 0330 * @ingroup RTEMSBSPsARMSTM32H7 0331 * @{ 0332 */ 0333 #define LL_MDMA_BUFF_WRITE_DISABLE 0x00000000U /*!< destination write operation is non-bufferable */ 0334 #define LL_MDMA_BUFF_WRITE_ENABLE MDMA_CTCR_BWM /*!< destination write operation is bufferable */ 0335 /** 0336 * @} 0337 */ 0338 0339 /** @defgroup MDMA_LL_EC_REQUEST_MODE Request Mode 0340 * @ingroup RTEMSBSPsARMSTM32H7 0341 * @{ 0342 */ 0343 #define LL_MDMA_REQUEST_MODE_HW 0x00000000U /*!< Request mode is Hardware */ 0344 #define LL_MDMA_REQUEST_MODE_SW MDMA_CTCR_SWRM /*!< Request mode is Software */ 0345 /** 0346 * @} 0347 */ 0348 0349 /** @defgroup MDMA_LL_EC_TRIGGER_MODE Trigger Mode 0350 * @ingroup RTEMSBSPsARMSTM32H7 0351 * @{ 0352 */ 0353 #define LL_MDMA_BUFFER_TRANSFER 0x00000000U /*!< Each MDMA request (SW or HW) triggers a buffer transfer */ 0354 #define LL_MDMA_BLOCK_TRANSFER MDMA_CTCR_TRGM_0 /*!< Each MDMA request (SW or HW) triggers a block transfer */ 0355 #define LL_MDMA_REPEAT_BLOCK_TRANSFER MDMA_CTCR_TRGM_1 /*!< Each MDMA request (SW or HW) triggers a repeated block transfer */ 0356 #define LL_MDMA_FULL_TRANSFER MDMA_CTCR_TRGM /*!< Each MDMA request (SW or HW) triggers a Full transfer or a linked list transfer if any */ 0357 /** 0358 * @} 0359 */ 0360 0361 /** @defgroup MDMA_LL_EC_PADDING_ALIGNMENT_MODE Padding Alignment Mode 0362 * @ingroup RTEMSBSPsARMSTM32H7 0363 * @{ 0364 */ 0365 #define LL_MDMA_DATAALIGN_RIGHT 0x00000000U /*!< Right Aligned, padded w/ 0s (default) */ 0366 #define LL_MDMA_DATAALIGN_RIGHT_SIGNED MDMA_CTCR_PAM_0 /*!< Right Aligned, Sign extended , 0367 Note : this mode is allowed only if the Source data size smaller than Destination data size */ 0368 #define LL_MDMA_DATAALIGN_LEFT MDMA_CTCR_PAM_1 /*!< Left Aligned (padded with 0s) */ 0369 /** 0370 * @} 0371 */ 0372 0373 /** @defgroup MDMA_LL_EC_PACKING_MODE Transfer Packing 0374 * @ingroup RTEMSBSPsARMSTM32H7 0375 * @{ 0376 */ 0377 #define LL_MDMA_PACK_DISABLE 0x00000000U /*!< Packing disabled */ 0378 #define LL_MDMA_PACK_ENABLE MDMA_CTCR_PKE /*!< Packing enabled */ 0379 /** 0380 * @} 0381 */ 0382 0383 /** @defgroup MDMA_LL_EC_DEST_BURST Transfer Destination Burst 0384 * @ingroup RTEMSBSPsARMSTM32H7 0385 * @{ 0386 */ 0387 #define LL_MDMA_DEST_BURST_SINGLE 0x00000000U /*!< Single transfer */ 0388 #define LL_MDMA_DEST_BURST_2BEATS MDMA_CTCR_DBURST_0 /*!< Burst 2 beats */ 0389 #define LL_MDMA_DEST_BURST_4BEATS MDMA_CTCR_DBURST_1 /*!< Burst 4 beats */ 0390 #define LL_MDMA_DEST_BURST_8BEATS (MDMA_CTCR_DBURST_0 | MDMA_CTCR_DBURST_1) /*!< Burst 8 beats */ 0391 #define LL_MDMA_DEST_BURST_16BEATS MDMA_CTCR_DBURST_2 /*!< Burst 16 beats */ 0392 #define LL_MDMA_DEST_BURST_32BEATS (MDMA_CTCR_DBURST_0 | MDMA_CTCR_DBURST_2) /*!< Burst 32 beats */ 0393 #define LL_MDMA_DEST_BURST_64BEATS (MDMA_CTCR_DBURST_1 | MDMA_CTCR_DBURST_2) /*!< Burst 64 beats */ 0394 #define LL_MDMA_DEST_BURST_128BEATS (MDMA_CTCR_DBURST) /*!< Burst 128 beats */ 0395 /** 0396 * @} 0397 */ 0398 0399 /** @defgroup MDMA_LL_EC_SRC_BURST Transfer Source Burst 0400 * @ingroup RTEMSBSPsARMSTM32H7 0401 * @{ 0402 */ 0403 #define LL_MDMA_SRC_BURST_SINGLE 0x00000000U /*!< Single transfer */ 0404 #define LL_MDMA_SRC_BURST_2BEATS MDMA_CTCR_SBURST_0 /*!< Burst 2 beats */ 0405 #define LL_MDMA_SRC_BURST_4BEATS MDMA_CTCR_SBURST_1 /*!< Burst 4 beats */ 0406 #define LL_MDMA_SRC_BURST_8BEATS (MDMA_CTCR_SBURST_0 | MDMA_CTCR_SBURST_1) /*!< Burst 8 beats */ 0407 #define LL_MDMA_SRC_BURST_16BEATS MDMA_CTCR_SBURST_2 /*!< Burst 16 beats */ 0408 #define LL_MDMA_SRC_BURST_32BEATS (MDMA_CTCR_SBURST_0 | MDMA_CTCR_SBURST_2) /*!< Burst 32 beats */ 0409 #define LL_MDMA_SRC_BURST_64BEATS (MDMA_CTCR_SBURST_1 | MDMA_CTCR_SBURST_2) /*!< Burst 64 beats */ 0410 #define LL_MDMA_SRC_BURST_128BEATS MDMA_CTCR_SBURST /*!< Burst 128 beats */ 0411 /** 0412 * @} 0413 */ 0414 0415 /** @defgroup MDMA_LL_EC_DEST_INC_OFFSET_SIZE Destination Increment Offset Size 0416 * @ingroup RTEMSBSPsARMSTM32H7 0417 * @{ 0418 */ 0419 #define LL_MDMA_DEST_INC_OFFSET_BYTE 0x00000000U /*!< offset is Byte (8-bit) */ 0420 #define LL_MDMA_DEST_INC_OFFSET_HALFWORD MDMA_CTCR_DINCOS_0 /*!< offset is Half Word (16-bit) */ 0421 #define LL_MDMA_DEST_INC_OFFSET_WORD MDMA_CTCR_DINCOS_1 /*!< offset is Word (32-bit) */ 0422 #define LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD MDMA_CTCR_DINCOS /*!< offset is Double Word (64-bit) */ 0423 /** 0424 * @} 0425 */ 0426 0427 /** @defgroup MDMA_LL_EC_SRC_INC_OFFSET_SIZE Source Increment Offset Size 0428 * @ingroup RTEMSBSPsARMSTM32H7 0429 * @{ 0430 */ 0431 #define LL_MDMA_SRC_INC_OFFSET_BYTE 0x00000000U /*!< offset is Byte (8-bit) */ 0432 #define LL_MDMA_SRC_INC_OFFSET_HALFWORD MDMA_CTCR_SINCOS_0 /*!< offset is Half Word (16-bit) */ 0433 #define LL_MDMA_SRC_INC_OFFSET_WORD MDMA_CTCR_SINCOS_1 /*!< offset is Word (32-bit) */ 0434 #define LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD MDMA_CTCR_SINCOS /*!< offset is Double Word (64-bit) */ 0435 /** 0436 * @} 0437 */ 0438 0439 /** @defgroup MDMA_LL_EC_DEST_DATA_SIZE Destination Data Size 0440 * @ingroup RTEMSBSPsARMSTM32H7 0441 * @{ 0442 */ 0443 #define LL_MDMA_DEST_DATA_SIZE_BYTE 0x00000000U /*!< Destination data size is Byte */ 0444 #define LL_MDMA_DEST_DATA_SIZE_HALFWORD MDMA_CTCR_DSIZE_0 /*!< Destination data size is half word */ 0445 #define LL_MDMA_DEST_DATA_SIZE_WORD MDMA_CTCR_DSIZE_1 /*!< Destination data size is word */ 0446 #define LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD MDMA_CTCR_DSIZE /*!< Destination data size is double word */ 0447 /** 0448 * @} 0449 */ 0450 0451 /** @defgroup MDMA_LL_EC_SRC_DATA_SIZE Source Data Size 0452 * @ingroup RTEMSBSPsARMSTM32H7 0453 * @{ 0454 */ 0455 #define LL_MDMA_SRC_DATA_SIZE_BYTE 0x00000000U /*!< Source data size is Byte */ 0456 #define LL_MDMA_SRC_DATA_SIZE_HALFWORD MDMA_CTCR_SSIZE_0 /*!< Source data size is half word */ 0457 #define LL_MDMA_SRC_DATA_SIZE_WORD MDMA_CTCR_SSIZE_1 /*!< Source data size is word */ 0458 #define LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD MDMA_CTCR_SSIZE /*!< Source data size is double word */ 0459 /** 0460 * @} 0461 */ 0462 0463 /** @defgroup MDMA_LL_EC_DEST_INC_MODE Destination Increment Mode 0464 * @ingroup RTEMSBSPsARMSTM32H7 0465 * @{ 0466 */ 0467 #define LL_MDMA_DEST_FIXED 0x00000000U /*!< Destination address pointer is fixed */ 0468 #define LL_MDMA_DEST_INCREMENT MDMA_CTCR_DINC_1 /*!< Destination address pointer is incremented after each data transfer */ 0469 #define LL_MDMA_DEST_DECREMENT MDMA_CTCR_DINC /*!< Destination address pointer is decremented after each data transfer */ 0470 /** 0471 * @} 0472 */ 0473 0474 /** @defgroup MDMA_LL_EC_SRC_INC_MODE Source Increment Mode 0475 * @ingroup RTEMSBSPsARMSTM32H7 0476 * @{ 0477 */ 0478 #define LL_MDMA_SRC_FIXED 0x00000000U /*!< Destination address pointer is fixed */ 0479 #define LL_MDMA_SRC_INCREMENT MDMA_CTCR_SINC_1 /*!< Destination address pointer is incremented after each data transfer */ 0480 #define LL_MDMA_SRC_DECREMENT MDMA_CTCR_SINC /*!< Destination address pointer is decremented after each data transfer */ 0481 /** 0482 * @} 0483 */ 0484 0485 /** @defgroup MDMA_LL_EC_BLK_RPT_DEST_ADDR_UPDATE_MODE Block Repeat Destination address Update Mode 0486 * @ingroup RTEMSBSPsARMSTM32H7 0487 * @{ 0488 */ 0489 #define LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT 0x00000000U /*!< Destination address pointer is incremented after each block transfer by Destination Update Value */ 0490 #define LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT MDMA_CBNDTR_BRDUM /*!< Destination address pointer is decremented after each block transfer by Destination Update Value */ 0491 /** 0492 * @} 0493 */ 0494 0495 /** @defgroup MDMA_LL_EC_SRC_BLK_RPT_ADDR_UPDATE_MODE Source Block Repeat address Update Mode 0496 * @ingroup RTEMSBSPsARMSTM32H7 0497 * @{ 0498 */ 0499 #define LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT 0x00000000U /*!< Source address pointer is incremented after each block transfer by Source Update Value */ 0500 #define LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT MDMA_CBNDTR_BRSUM /*!< Source address pointer is decremented after each block transfer by Source Update Value */ 0501 /** 0502 * @} 0503 */ 0504 0505 /** @defgroup MDMA_LL_EC_DEST_BUS Destination BUS Selection 0506 * @ingroup RTEMSBSPsARMSTM32H7 0507 * @{ 0508 */ 0509 #define LL_MDMA_DEST_BUS_SYSTEM_AXI 0x00000000U /*!< System/AXI bus is used as destination */ 0510 #define LL_MDMA_DEST_BUS_AHB_TCM MDMA_CTBR_DBUS /*!< AHB bus/TCM is used as destination */ 0511 /** 0512 * @} 0513 */ 0514 0515 /** @defgroup MDMA_LL_EC_SRC_BUS Source BUS Selection 0516 * @ingroup RTEMSBSPsARMSTM32H7 0517 * @{ 0518 */ 0519 #define LL_MDMA_SRC_BUS_SYSTEM_AXI 0x00000000U /*!< System/AXI bus is used as source */ 0520 #define LL_MDMA_SRC_BUS_AHB_TCM MDMA_CTBR_SBUS /*!< AHB bus/TCM is used as source */ 0521 /** 0522 * @} 0523 */ 0524 0525 /** @defgroup MDMA_LL_EC_HW_TRIGGER_SELCTION HW Trigger Selection 0526 * @ingroup RTEMSBSPsARMSTM32H7 0527 * @{ 0528 */ 0529 #define LL_MDMA_REQ_DMA1_STREAM0_TC 0x00000000U /*!< MDMA HW Trigger (request) is DMA1 Stream 0 Transfer Complete Flag */ 0530 #define LL_MDMA_REQ_DMA1_STREAM1_TC 0x00000001U /*!< MDMA HW Trigger (request) is DMA1 Stream 1 Transfer Complete Flag */ 0531 #define LL_MDMA_REQ_DMA1_STREAM2_TC 0x00000002U /*!< MDMA HW Trigger (request) is DMA1 Stream 2 Transfer Complete Flag */ 0532 #define LL_MDMA_REQ_DMA1_STREAM3_TC 0x00000003U /*!< MDMA HW Trigger (request) is DMA1 Stream 3 Transfer Complete Flag */ 0533 #define LL_MDMA_REQ_DMA1_STREAM4_TC 0x00000004U /*!< MDMA HW Trigger (request) is DMA1 Stream 4 Transfer Complete Flag */ 0534 #define LL_MDMA_REQ_DMA1_STREAM5_TC 0x00000005U /*!< MDMA HW Trigger (request) is DMA1 Stream 5 Transfer Complete Flag */ 0535 #define LL_MDMA_REQ_DMA1_STREAM6_TC 0x00000006U /*!< MDMA HW Trigger (request) is DMA1 Stream 6 Transfer Complete Flag */ 0536 #define LL_MDMA_REQ_DMA1_STREAM7_TC 0x00000007U /*!< MDMA HW Trigger (request) is DMA1 Stream 7 Transfer Complete Flag */ 0537 #define LL_MDMA_REQ_DMA2_STREAM0_TC 0x00000008U /*!< MDMA HW Trigger (request) is DMA2 Stream 0 Transfer Complete Flag */ 0538 #define LL_MDMA_REQ_DMA2_STREAM1_TC 0x00000009U /*!< MDMA HW Trigger (request) is DMA2 Stream 1 Transfer Complete Flag */ 0539 #define LL_MDMA_REQ_DMA2_STREAM2_TC 0x0000000AU /*!< MDMA HW Trigger (request) is DMA2 Stream 2 Transfer Complete Flag */ 0540 #define LL_MDMA_REQ_DMA2_STREAM3_TC 0x0000000BU /*!< MDMA HW Trigger (request) is DMA2 Stream 3 Transfer Complete Flag */ 0541 #define LL_MDMA_REQ_DMA2_STREAM4_TC 0x0000000CU /*!< MDMA HW Trigger (request) is DMA2 Stream 4 Transfer Complete Flag */ 0542 #define LL_MDMA_REQ_DMA2_STREAM5_TC 0x0000000DU /*!< MDMA HW Trigger (request) is DMA2 Stream 5 Transfer Complete Flag */ 0543 #define LL_MDMA_REQ_DMA2_STREAM6_TC 0x0000000EU /*!< MDMA HW Trigger (request) is DMA2 Stream 6 Transfer Complete Flag */ 0544 #define LL_MDMA_REQ_DMA2_STREAM7_TC 0x0000000FU /*!< MDMA HW Trigger (request) is DMA2 Stream 7 Transfer Complete Flag */ 0545 #if defined (LTDC) 0546 #define LL_MDMA_REQ_LTDC_LINE_IT 0x00000010U /*!< MDMA HW Trigger (request) is LTDC Line interrupt Flag */ 0547 #endif /* LTDC */ 0548 #if defined (JPEG) 0549 #define LL_MDMA_REQ_JPEG_INFIFO_TH 0x00000011U /*!< MDMA HW Trigger (request) is JPEG Input FIFO threshold Flag */ 0550 #define LL_MDMA_REQ_JPEG_INFIFO_NF 0x00000012U /*!< MDMA HW Trigger (request) is JPEG Input FIFO not full Flag */ 0551 #define LL_MDMA_REQ_JPEG_OUTFIFO_TH 0x00000013U /*!< MDMA HW Trigger (request) is JPEG Output FIFO threshold Flag */ 0552 #define LL_MDMA_REQ_JPEG_OUTFIFO_NE 0x00000014U /*!< MDMA HW Trigger (request) is JPEG Output FIFO not empty Flag */ 0553 #define LL_MDMA_REQ_JPEG_END_CONVERSION 0x00000015U /*!< MDMA HW Trigger (request) is JPEG End of conversion Flag */ 0554 #endif /* JPEG */ 0555 #if defined (QUADSPI) 0556 #define LL_MDMA_REQ_QUADSPI_FIFO_TH 0x00000016U /*!< MDMA HW Trigger (request) is QSPI FIFO threshold Flag */ 0557 #define LL_MDMA_REQ_QUADSPI_TC 0x00000017U /*!< MDMA HW Trigger (request) is QSPI Transfer complete Flag */ 0558 #endif /* QUADSPI */ 0559 #if defined (OCTOSPI1) 0560 #define LL_MDMA_REQ_OCTOSPI1_FIFO_TH 0x00000016U /*!< MDMA HW Trigger (request) is OCTOSPI1 FIFO threshold Flag */ 0561 #define LL_MDMA_REQ_OCTOSPI1_TC 0x00000017U /*!< MDMA HW Trigger (request) is OCTOSPI1 Transfer complete Flag */ 0562 #endif /* OCTOSPI1 */ 0563 #define LL_MDMA_REQ_DMA2D_CLUT_TC 0x00000018U /*!< MDMA HW Trigger (request) is DMA2D CLUT Transfer Complete Flag */ 0564 #define LL_MDMA_REQ_DMA2D_TC 0x00000019U /*!< MDMA HW Trigger (request) is DMA2D Transfer Complete Flag */ 0565 #define LL_MDMA_REQ_DMA2D_TW 0x0000001AU /*!< MDMA HW Trigger (request) is DMA2D Transfer Watermark Flag */ 0566 #if defined (DSI) 0567 #define LL_MDMA_REQ_DSI_TEARING_EFFECT 0x0000001BU /*!< MDMA HW Trigger (request) is DSI Tearing Effect Flag */ 0568 #define LL_MDMA_REQ_DSI_END_REFRESH 0x0000001CU /*!< MDMA HW Trigger (request) is DSI End of refresh Flag */ 0569 #endif /* DSI */ 0570 #define LL_MDMA_REQ_SDMMC1_END_DATA 0x0000001DU /*!< MDMA HW Trigger (request) is SDMMC1 End of Data Flag */ 0571 #define LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER 0x0000001EU /*!< MDMA HW Trigger (request) is SDMMC1 Internal DMA buffer End Flag : This trigger is available starting from STM32H7 Rev.B devices */ 0572 #define LL_MDMA_REQ_SDMMC1_COMMAND_END 0x0000001FU /*!< MDMA HW Trigger (request) is SDMMC1 Command End Flag : This trigger is available starting from STM32H7 Rev.B devices */ 0573 #if defined (OCTOSPI2) 0574 #define LL_MDMA_REQ_OCTOSPI2_FIFO_TH 0x00000020U /*!< MDMA HW Trigger (request) is OCTOSPI2 FIFO threshold Flag */ 0575 #define LL_MDMA_REQ_OCTOSPI2_TC 0x00000021U /*!< MDMA HW Trigger (request) is OCTOSPI2 Transfer complete Flag */ 0576 #endif /* OCTOSPI2 */ 0577 /** 0578 * @} 0579 */ 0580 0581 /** @defgroup MDMA_LL_EC_XFER_ERROR_DIRECTION Transfer Error Direction 0582 * @ingroup RTEMSBSPsARMSTM32H7 0583 * @{ 0584 */ 0585 #define LL_MDMA_READ_ERROR 0x00000000U /*!< Last transfer error on the channel was a related to a read access */ 0586 #define LL_MDMA_WRITE_ERROR MDMA_CESR_TED /*!< Last transfer error on the channel was a related to a write access */ 0587 /** 0588 * @} 0589 */ 0590 0591 /** 0592 * @} 0593 */ 0594 0595 /* Exported macro ------------------------------------------------------------*/ 0596 /** @defgroup MDMA_LL_Exported_Macros MDMA Exported Macros 0597 * @ingroup RTEMSBSPsARMSTM32H7 0598 * @{ 0599 */ 0600 0601 /** @defgroup MDMA_LL_EM_WRITE_READ Common Write and read registers macros 0602 * @ingroup RTEMSBSPsARMSTM32H7 0603 * @{ 0604 */ 0605 /** 0606 * @brief Write a value in MDMA register 0607 * @param __INSTANCE__ MDMA Instance 0608 * @param __REG__ Register to be written 0609 * @param __VALUE__ Value to be written in the register 0610 * @retval None 0611 */ 0612 #define LL_MDMA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__)) 0613 0614 /** 0615 * @brief Read a value in MDMA register 0616 * @param __INSTANCE__ MDMA Instance 0617 * @param __REG__ Register to be read 0618 * @retval Register value 0619 */ 0620 #define LL_MDMA_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__) 0621 /** 0622 * @} 0623 */ 0624 0625 /** @defgroup MDMA_LL_EM_CONVERT_DMAxCHANNELy Convert MDMAxChannely 0626 * @ingroup RTEMSBSPsARMSTM32H7 0627 * @{ 0628 */ 0629 /** 0630 * @brief Convert MDMAx_Channely into MDMAx 0631 * @param __CHANNEL_INSTANCE__ MDMAx_Channely 0632 * @retval MDMAx 0633 */ 0634 #define LL_MDMA_GET_INSTANCE(__CHANNEL_INSTANCE__) (MDMA) 0635 0636 /** 0637 * @brief Convert MDMAx_Channely into LL_MDMA_CHANNEL_y 0638 * @param __CHANNEL_INSTANCE__ MDMAx_Channely 0639 * @retval LL_MDMA_CHANNEL_y 0640 */ 0641 #define LL_MDMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \ 0642 (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel0 )) ? LL_MDMA_CHANNEL_0 : \ 0643 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel1 )) ? LL_MDMA_CHANNEL_1 : \ 0644 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel2 )) ? LL_MDMA_CHANNEL_2 : \ 0645 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel3 )) ? LL_MDMA_CHANNEL_3 : \ 0646 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel4 )) ? LL_MDMA_CHANNEL_4 : \ 0647 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel5 )) ? LL_MDMA_CHANNEL_5 : \ 0648 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel6 )) ? LL_MDMA_CHANNEL_6 : \ 0649 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel7 )) ? LL_MDMA_CHANNEL_7 : \ 0650 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel8 )) ? LL_MDMA_CHANNEL_8 : \ 0651 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel9 )) ? LL_MDMA_CHANNEL_9 : \ 0652 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel10)) ? LL_MDMA_CHANNEL_10 : \ 0653 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel11)) ? LL_MDMA_CHANNEL_11 : \ 0654 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel12)) ? LL_MDMA_CHANNEL_12 : \ 0655 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel13)) ? LL_MDMA_CHANNEL_13 : \ 0656 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel14)) ? LL_MDMA_CHANNEL_14 : \ 0657 LL_MDMA_CHANNEL_15) 0658 0659 /** 0660 * @brief Convert MDMA Instance MDMAx and LL_MDMA_CHANNEL_y into MDMAx_Channely 0661 * @param __MDMA_INSTANCE__ MDMAx 0662 * @param __CHANNEL__ LL_MDMA_CHANNEL_y 0663 * @retval MDMAx_Channely 0664 */ 0665 #define LL_MDMA_GET_CHANNEL_INSTANCE(__MDMA_INSTANCE__, __CHANNEL__) \ 0666 (((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_0 )) ? MDMA_Channel0 : \ 0667 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_1 )) ? MDMA_Channel1 : \ 0668 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_2 )) ? MDMA_Channel2 : \ 0669 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_3 )) ? MDMA_Channel3 : \ 0670 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_4 )) ? MDMA_Channel4 : \ 0671 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_5 )) ? MDMA_Channel5 : \ 0672 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_6 )) ? MDMA_Channel6 : \ 0673 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_7 )) ? MDMA_Channel7 : \ 0674 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_8 )) ? MDMA_Channel8 : \ 0675 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_9 )) ? MDMA_Channel9 : \ 0676 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_10)) ? MDMA_Channel10 : \ 0677 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_11)) ? MDMA_Channel11 : \ 0678 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_12)) ? MDMA_Channel12 : \ 0679 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_13)) ? MDMA_Channel13 : \ 0680 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_14)) ? MDMA_Channel14 : \ 0681 MDMA_Channel15) 0682 0683 /** 0684 * @} 0685 */ 0686 0687 /** 0688 * @} 0689 */ 0690 0691 0692 /* Exported functions --------------------------------------------------------*/ 0693 /** @defgroup MDMA_LL_Exported_Functions MDMA Exported Functions 0694 * @ingroup RTEMSBSPsARMSTM32H7 0695 * @{ 0696 */ 0697 0698 /** @defgroup MDMA_LL_EF_Configuration Configuration 0699 * @ingroup RTEMSBSPsARMSTM32H7 0700 * @{ 0701 */ 0702 /** 0703 * @brief Enable MDMA channel. 0704 * @rmtoll CCR EN LL_MDMA_EnableChannel 0705 * @param MDMAx MDMAx Instance 0706 * @param Channel This parameter can be one of the following values: 0707 * @arg @ref LL_MDMA_CHANNEL_0 0708 * @arg @ref LL_MDMA_CHANNEL_1 0709 * @arg @ref LL_MDMA_CHANNEL_2 0710 * @arg @ref LL_MDMA_CHANNEL_3 0711 * @arg @ref LL_MDMA_CHANNEL_4 0712 * @arg @ref LL_MDMA_CHANNEL_5 0713 * @arg @ref LL_MDMA_CHANNEL_6 0714 * @arg @ref LL_MDMA_CHANNEL_7 0715 * @arg @ref LL_MDMA_CHANNEL_8 0716 * @arg @ref LL_MDMA_CHANNEL_9 0717 * @arg @ref LL_MDMA_CHANNEL_10 0718 * @arg @ref LL_MDMA_CHANNEL_11 0719 * @arg @ref LL_MDMA_CHANNEL_12 0720 * @arg @ref LL_MDMA_CHANNEL_13 0721 * @arg @ref LL_MDMA_CHANNEL_14 0722 * @arg @ref LL_MDMA_CHANNEL_15 0723 * @retval None 0724 */ 0725 __STATIC_INLINE void LL_MDMA_EnableChannel(MDMA_TypeDef *MDMAx, uint32_t Channel) 0726 { 0727 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0728 0729 SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN); 0730 } 0731 0732 /** 0733 * @brief Disable MDMA channel. 0734 * @rmtoll CCR EN LL_MDMA_DisableChannel 0735 * @param MDMAx MDMAx Instance 0736 * @param Channel This parameter can be one of the following values: 0737 * @arg @ref LL_MDMA_CHANNEL_0 0738 * @arg @ref LL_MDMA_CHANNEL_1 0739 * @arg @ref LL_MDMA_CHANNEL_2 0740 * @arg @ref LL_MDMA_CHANNEL_3 0741 * @arg @ref LL_MDMA_CHANNEL_4 0742 * @arg @ref LL_MDMA_CHANNEL_5 0743 * @arg @ref LL_MDMA_CHANNEL_6 0744 * @arg @ref LL_MDMA_CHANNEL_7 0745 * @arg @ref LL_MDMA_CHANNEL_8 0746 * @arg @ref LL_MDMA_CHANNEL_9 0747 * @arg @ref LL_MDMA_CHANNEL_10 0748 * @arg @ref LL_MDMA_CHANNEL_11 0749 * @arg @ref LL_MDMA_CHANNEL_12 0750 * @arg @ref LL_MDMA_CHANNEL_13 0751 * @arg @ref LL_MDMA_CHANNEL_14 0752 * @arg @ref LL_MDMA_CHANNEL_15 0753 * @retval None 0754 */ 0755 __STATIC_INLINE void LL_MDMA_DisableChannel(MDMA_TypeDef *MDMAx, uint32_t Channel) 0756 { 0757 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0758 0759 CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN); 0760 } 0761 0762 /** 0763 * @brief Check if MDMA channel is enabled or disabled. 0764 * @rmtoll CCR EN LL_MDMA_IsEnabledChannel 0765 * @param MDMAx MDMAx Instance 0766 * @param Channel This parameter can be one of the following values: 0767 * @arg @ref LL_MDMA_CHANNEL_0 0768 * @arg @ref LL_MDMA_CHANNEL_1 0769 * @arg @ref LL_MDMA_CHANNEL_2 0770 * @arg @ref LL_MDMA_CHANNEL_3 0771 * @arg @ref LL_MDMA_CHANNEL_4 0772 * @arg @ref LL_MDMA_CHANNEL_5 0773 * @arg @ref LL_MDMA_CHANNEL_6 0774 * @arg @ref LL_MDMA_CHANNEL_7 0775 * @arg @ref LL_MDMA_CHANNEL_8 0776 * @arg @ref LL_MDMA_CHANNEL_9 0777 * @arg @ref LL_MDMA_CHANNEL_10 0778 * @arg @ref LL_MDMA_CHANNEL_11 0779 * @arg @ref LL_MDMA_CHANNEL_12 0780 * @arg @ref LL_MDMA_CHANNEL_13 0781 * @arg @ref LL_MDMA_CHANNEL_14 0782 * @arg @ref LL_MDMA_CHANNEL_15 0783 * @retval State of bit (1 or 0). 0784 */ 0785 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledChannel(MDMA_TypeDef *MDMAx, uint32_t Channel) 0786 { 0787 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0788 0789 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN) == (MDMA_CCR_EN)) ? 1UL : 0UL); 0790 } 0791 0792 /** 0793 * @brief Generate a SW transfer request on the MDMA channel. 0794 * @rmtoll CCR SWRQ LL_MDMA_GenerateSWRequest 0795 * @param MDMAx MDMAx Instance 0796 * @param Channel This parameter can be one of the following values: 0797 * @arg @ref LL_MDMA_CHANNEL_0 0798 * @arg @ref LL_MDMA_CHANNEL_1 0799 * @arg @ref LL_MDMA_CHANNEL_2 0800 * @arg @ref LL_MDMA_CHANNEL_3 0801 * @arg @ref LL_MDMA_CHANNEL_4 0802 * @arg @ref LL_MDMA_CHANNEL_5 0803 * @arg @ref LL_MDMA_CHANNEL_6 0804 * @arg @ref LL_MDMA_CHANNEL_7 0805 * @arg @ref LL_MDMA_CHANNEL_8 0806 * @arg @ref LL_MDMA_CHANNEL_9 0807 * @arg @ref LL_MDMA_CHANNEL_10 0808 * @arg @ref LL_MDMA_CHANNEL_11 0809 * @arg @ref LL_MDMA_CHANNEL_12 0810 * @arg @ref LL_MDMA_CHANNEL_13 0811 * @arg @ref LL_MDMA_CHANNEL_14 0812 * @arg @ref LL_MDMA_CHANNEL_15 0813 * @retval None 0814 */ 0815 __STATIC_INLINE void LL_MDMA_GenerateSWRequest(MDMA_TypeDef *MDMAx, uint32_t Channel) 0816 { 0817 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0818 0819 SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_SWRQ); 0820 } 0821 0822 /** 0823 * @brief Configure Transfer endianness parameters : Word, Half word and Bytes Endianness. 0824 * @rmtoll CCR WEX LL_MDMA_ConfigXferEndianness\n 0825 * @rmtoll CCR HEX LL_MDMA_ConfigXferEndianness\n 0826 * @rmtoll CCR BEX LL_MDMA_ConfigXferEndianness 0827 * @param MDMAx MDMAx Instance 0828 * @param Channel This parameter can be one of the following values: 0829 * @arg @ref LL_MDMA_CHANNEL_0 0830 * @arg @ref LL_MDMA_CHANNEL_1 0831 * @arg @ref LL_MDMA_CHANNEL_2 0832 * @arg @ref LL_MDMA_CHANNEL_3 0833 * @arg @ref LL_MDMA_CHANNEL_4 0834 * @arg @ref LL_MDMA_CHANNEL_5 0835 * @arg @ref LL_MDMA_CHANNEL_6 0836 * @arg @ref LL_MDMA_CHANNEL_7 0837 * @arg @ref LL_MDMA_CHANNEL_8 0838 * @arg @ref LL_MDMA_CHANNEL_9 0839 * @arg @ref LL_MDMA_CHANNEL_10 0840 * @arg @ref LL_MDMA_CHANNEL_11 0841 * @arg @ref LL_MDMA_CHANNEL_12 0842 * @arg @ref LL_MDMA_CHANNEL_13 0843 * @arg @ref LL_MDMA_CHANNEL_14 0844 * @arg @ref LL_MDMA_CHANNEL_15 0845 * @param Configuration This parameter must be a combination of all the following values: 0846 * @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE or @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE 0847 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE or @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE 0848 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE or @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE 0849 * @retval None 0850 */ 0851 __STATIC_INLINE void LL_MDMA_ConfigXferEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration) 0852 { 0853 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0854 0855 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, 0856 MDMA_CCR_WEX | MDMA_CCR_HEX | MDMA_CCR_BEX, Configuration); 0857 } 0858 0859 /** 0860 * @brief Set Words Endianness. 0861 * @rmtoll CCR WEX LL_MDMA_SetWordEndianness 0862 * @param MDMAx MDMAx Instance 0863 * @param Channel This parameter can be one of the following values: 0864 * @arg @ref LL_MDMA_CHANNEL_0 0865 * @arg @ref LL_MDMA_CHANNEL_1 0866 * @arg @ref LL_MDMA_CHANNEL_2 0867 * @arg @ref LL_MDMA_CHANNEL_3 0868 * @arg @ref LL_MDMA_CHANNEL_4 0869 * @arg @ref LL_MDMA_CHANNEL_5 0870 * @arg @ref LL_MDMA_CHANNEL_6 0871 * @arg @ref LL_MDMA_CHANNEL_7 0872 * @arg @ref LL_MDMA_CHANNEL_8 0873 * @arg @ref LL_MDMA_CHANNEL_9 0874 * @arg @ref LL_MDMA_CHANNEL_10 0875 * @arg @ref LL_MDMA_CHANNEL_11 0876 * @arg @ref LL_MDMA_CHANNEL_12 0877 * @arg @ref LL_MDMA_CHANNEL_13 0878 * @arg @ref LL_MDMA_CHANNEL_14 0879 * @arg @ref LL_MDMA_CHANNEL_15 0880 * @param Endianness This parameter can be one of the following values: 0881 * @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE 0882 * @arg @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE 0883 * @retval None 0884 */ 0885 __STATIC_INLINE void LL_MDMA_SetWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness) 0886 { 0887 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0888 0889 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_WEX, Endianness); 0890 } 0891 0892 /** 0893 * @brief Get Words Endianness. 0894 * @rmtoll CCR WEX LL_MDMA_GetWordEndianness 0895 * @param MDMAx MDMAx Instance 0896 * @param Channel This parameter can be one of the following values: 0897 * @arg @ref LL_MDMA_CHANNEL_0 0898 * @arg @ref LL_MDMA_CHANNEL_1 0899 * @arg @ref LL_MDMA_CHANNEL_2 0900 * @arg @ref LL_MDMA_CHANNEL_3 0901 * @arg @ref LL_MDMA_CHANNEL_4 0902 * @arg @ref LL_MDMA_CHANNEL_5 0903 * @arg @ref LL_MDMA_CHANNEL_6 0904 * @arg @ref LL_MDMA_CHANNEL_7 0905 * @arg @ref LL_MDMA_CHANNEL_8 0906 * @arg @ref LL_MDMA_CHANNEL_9 0907 * @arg @ref LL_MDMA_CHANNEL_10 0908 * @arg @ref LL_MDMA_CHANNEL_11 0909 * @arg @ref LL_MDMA_CHANNEL_12 0910 * @arg @ref LL_MDMA_CHANNEL_13 0911 * @arg @ref LL_MDMA_CHANNEL_14 0912 * @arg @ref LL_MDMA_CHANNEL_15 0913 * @retval Returned value can be one of the following values: 0914 * @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE 0915 * @arg @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE 0916 * @retval None 0917 */ 0918 __STATIC_INLINE uint32_t LL_MDMA_GetWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel) 0919 { 0920 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0921 0922 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_WEX)); 0923 } 0924 0925 /** 0926 * @brief Set Half Words Endianness. 0927 * @rmtoll CCR HEX LL_MDMA_SetHalfWordEndianness 0928 * @param MDMAx MDMAx Instance 0929 * @param Channel This parameter can be one of the following values: 0930 * @arg @ref LL_MDMA_CHANNEL_0 0931 * @arg @ref LL_MDMA_CHANNEL_1 0932 * @arg @ref LL_MDMA_CHANNEL_2 0933 * @arg @ref LL_MDMA_CHANNEL_3 0934 * @arg @ref LL_MDMA_CHANNEL_4 0935 * @arg @ref LL_MDMA_CHANNEL_5 0936 * @arg @ref LL_MDMA_CHANNEL_6 0937 * @arg @ref LL_MDMA_CHANNEL_7 0938 * @arg @ref LL_MDMA_CHANNEL_8 0939 * @arg @ref LL_MDMA_CHANNEL_9 0940 * @arg @ref LL_MDMA_CHANNEL_10 0941 * @arg @ref LL_MDMA_CHANNEL_11 0942 * @arg @ref LL_MDMA_CHANNEL_12 0943 * @arg @ref LL_MDMA_CHANNEL_13 0944 * @arg @ref LL_MDMA_CHANNEL_14 0945 * @arg @ref LL_MDMA_CHANNEL_15 0946 * @param Endianness This parameter can be one of the following values: 0947 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE 0948 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE 0949 * @retval None 0950 */ 0951 __STATIC_INLINE void LL_MDMA_SetHalfWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness) 0952 { 0953 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0954 0955 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_HEX, Endianness); 0956 } 0957 0958 /** 0959 * @brief Get Half Words Endianness. 0960 * @rmtoll CCR HEX LL_MDMA_GetHalfWordEndianness 0961 * @param MDMAx MDMAx Instance 0962 * @param Channel This parameter can be one of the following values: 0963 * @arg @ref LL_MDMA_CHANNEL_0 0964 * @arg @ref LL_MDMA_CHANNEL_1 0965 * @arg @ref LL_MDMA_CHANNEL_2 0966 * @arg @ref LL_MDMA_CHANNEL_3 0967 * @arg @ref LL_MDMA_CHANNEL_4 0968 * @arg @ref LL_MDMA_CHANNEL_5 0969 * @arg @ref LL_MDMA_CHANNEL_6 0970 * @arg @ref LL_MDMA_CHANNEL_7 0971 * @arg @ref LL_MDMA_CHANNEL_8 0972 * @arg @ref LL_MDMA_CHANNEL_9 0973 * @arg @ref LL_MDMA_CHANNEL_10 0974 * @arg @ref LL_MDMA_CHANNEL_11 0975 * @arg @ref LL_MDMA_CHANNEL_12 0976 * @arg @ref LL_MDMA_CHANNEL_13 0977 * @arg @ref LL_MDMA_CHANNEL_14 0978 * @arg @ref LL_MDMA_CHANNEL_15 0979 * @retval Returned value can be one of the following values: 0980 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE 0981 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE 0982 * @retval None 0983 */ 0984 __STATIC_INLINE uint32_t LL_MDMA_GetHalfWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel) 0985 { 0986 uint32_t mdma_base_addr = (uint32_t)MDMAx; 0987 0988 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_HEX)); 0989 } 0990 0991 /** 0992 * @brief Set Bytes Endianness. 0993 * @rmtoll CCR BEX LL_MDMA_SetByteEndianness 0994 * @param MDMAx MDMAx Instance 0995 * @param Channel This parameter can be one of the following values: 0996 * @arg @ref LL_MDMA_CHANNEL_0 0997 * @arg @ref LL_MDMA_CHANNEL_1 0998 * @arg @ref LL_MDMA_CHANNEL_2 0999 * @arg @ref LL_MDMA_CHANNEL_3 1000 * @arg @ref LL_MDMA_CHANNEL_4 1001 * @arg @ref LL_MDMA_CHANNEL_5 1002 * @arg @ref LL_MDMA_CHANNEL_6 1003 * @arg @ref LL_MDMA_CHANNEL_7 1004 * @arg @ref LL_MDMA_CHANNEL_8 1005 * @arg @ref LL_MDMA_CHANNEL_9 1006 * @arg @ref LL_MDMA_CHANNEL_10 1007 * @arg @ref LL_MDMA_CHANNEL_11 1008 * @arg @ref LL_MDMA_CHANNEL_12 1009 * @arg @ref LL_MDMA_CHANNEL_13 1010 * @arg @ref LL_MDMA_CHANNEL_14 1011 * @arg @ref LL_MDMA_CHANNEL_15 1012 * @param Endianness This parameter can be one of the following values: 1013 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE 1014 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE 1015 * @retval None 1016 */ 1017 __STATIC_INLINE void LL_MDMA_SetByteEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness) 1018 { 1019 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1020 1021 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_BEX, Endianness); 1022 } 1023 1024 /** 1025 * @brief Get Bytes Endianness. 1026 * @rmtoll CCR BEX LL_MDMA_GetByteEndianness 1027 * @param MDMAx MDMAx Instance 1028 * @param Channel This parameter can be one of the following values: 1029 * @arg @ref LL_MDMA_CHANNEL_0 1030 * @arg @ref LL_MDMA_CHANNEL_1 1031 * @arg @ref LL_MDMA_CHANNEL_2 1032 * @arg @ref LL_MDMA_CHANNEL_3 1033 * @arg @ref LL_MDMA_CHANNEL_4 1034 * @arg @ref LL_MDMA_CHANNEL_5 1035 * @arg @ref LL_MDMA_CHANNEL_6 1036 * @arg @ref LL_MDMA_CHANNEL_7 1037 * @arg @ref LL_MDMA_CHANNEL_8 1038 * @arg @ref LL_MDMA_CHANNEL_9 1039 * @arg @ref LL_MDMA_CHANNEL_10 1040 * @arg @ref LL_MDMA_CHANNEL_11 1041 * @arg @ref LL_MDMA_CHANNEL_12 1042 * @arg @ref LL_MDMA_CHANNEL_13 1043 * @arg @ref LL_MDMA_CHANNEL_14 1044 * @arg @ref LL_MDMA_CHANNEL_15 1045 * @retval Returned value can be one of the following values: 1046 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE 1047 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE 1048 * @retval None 1049 */ 1050 __STATIC_INLINE uint32_t LL_MDMA_GetByteEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel) 1051 { 1052 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1053 1054 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_BEX)); 1055 } 1056 1057 /** 1058 * @brief Set Channel priority level. 1059 * @rmtoll CCR PL LL_MDMA_SetChannelPriorityLevel 1060 * @param MDMAx MDMAx Instance 1061 * @param Channel This parameter can be one of the following values: 1062 * @arg @ref LL_MDMA_CHANNEL_0 1063 * @arg @ref LL_MDMA_CHANNEL_1 1064 * @arg @ref LL_MDMA_CHANNEL_2 1065 * @arg @ref LL_MDMA_CHANNEL_3 1066 * @arg @ref LL_MDMA_CHANNEL_4 1067 * @arg @ref LL_MDMA_CHANNEL_5 1068 * @arg @ref LL_MDMA_CHANNEL_6 1069 * @arg @ref LL_MDMA_CHANNEL_7 1070 * @arg @ref LL_MDMA_CHANNEL_8 1071 * @arg @ref LL_MDMA_CHANNEL_9 1072 * @arg @ref LL_MDMA_CHANNEL_10 1073 * @arg @ref LL_MDMA_CHANNEL_11 1074 * @arg @ref LL_MDMA_CHANNEL_12 1075 * @arg @ref LL_MDMA_CHANNEL_13 1076 * @arg @ref LL_MDMA_CHANNEL_14 1077 * @arg @ref LL_MDMA_CHANNEL_15 1078 * @param Priority This parameter can be one of the following values: 1079 * @arg @ref LL_MDMA_PRIORITY_LOW 1080 * @arg @ref LL_MDMA_PRIORITY_MEDIUM 1081 * @arg @ref LL_MDMA_PRIORITY_HIGH 1082 * @arg @ref LL_MDMA_PRIORITY_VERYHIGH 1083 * @retval None 1084 */ 1085 __STATIC_INLINE void LL_MDMA_SetChannelPriorityLevel(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Priority) 1086 { 1087 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1088 1089 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_PL, Priority); 1090 } 1091 1092 /** 1093 * @brief Get Channel priority level. 1094 * @rmtoll CCR PL LL_MDMA_GetChannelPriorityLevel 1095 * @param MDMAx MDMAx Instance 1096 * @param Channel This parameter can be one of the following values: 1097 * @arg @ref LL_MDMA_CHANNEL_0 1098 * @arg @ref LL_MDMA_CHANNEL_1 1099 * @arg @ref LL_MDMA_CHANNEL_2 1100 * @arg @ref LL_MDMA_CHANNEL_3 1101 * @arg @ref LL_MDMA_CHANNEL_4 1102 * @arg @ref LL_MDMA_CHANNEL_5 1103 * @arg @ref LL_MDMA_CHANNEL_6 1104 * @arg @ref LL_MDMA_CHANNEL_7 1105 * @arg @ref LL_MDMA_CHANNEL_8 1106 * @arg @ref LL_MDMA_CHANNEL_9 1107 * @arg @ref LL_MDMA_CHANNEL_10 1108 * @arg @ref LL_MDMA_CHANNEL_11 1109 * @arg @ref LL_MDMA_CHANNEL_12 1110 * @arg @ref LL_MDMA_CHANNEL_13 1111 * @arg @ref LL_MDMA_CHANNEL_14 1112 * @arg @ref LL_MDMA_CHANNEL_15 1113 * @retval Returned value can be one of the following values: 1114 * @arg @ref LL_MDMA_PRIORITY_LOW 1115 * @arg @ref LL_MDMA_PRIORITY_MEDIUM 1116 * @arg @ref LL_MDMA_PRIORITY_HIGH 1117 * @arg @ref LL_MDMA_PRIORITY_VERYHIGH 1118 * @retval None 1119 */ 1120 __STATIC_INLINE uint32_t LL_MDMA_GetChannelPriorityLevel(MDMA_TypeDef *MDMAx, uint32_t Channel) 1121 { 1122 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1123 1124 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_PL)); 1125 } 1126 1127 /** 1128 * @brief Configure MDMA transfer parameters. 1129 * @rmtoll CTCR BWM LL_MDMA_ConfigTransfer\n 1130 * @rmtoll CTCR SWRM LL_MDMA_ConfigTransfer\n 1131 * @rmtoll CTCR TRGM LL_MDMA_ConfigTransfer\n 1132 * @rmtoll CTCR PAM LL_MDMA_ConfigTransfer\n 1133 * @rmtoll CTCR PKE LL_MDMA_ConfigTransfer\n 1134 * @rmtoll CTCR TLEN LL_MDMA_ConfigTransfer\n 1135 * @rmtoll CTCR DBURST LL_MDMA_ConfigTransfer\n 1136 * @rmtoll CTCR SBURST LL_MDMA_ConfigTransfer\n 1137 * @rmtoll CTCR DINCOS LL_MDMA_ConfigTransfer\n 1138 * @rmtoll CTCR SINCOS LL_MDMA_ConfigTransfer\n 1139 * @rmtoll CTCR DSIZE LL_MDMA_ConfigTransfer\n 1140 * @rmtoll CTCR SSIZE LL_MDMA_ConfigTransfer\n 1141 * @rmtoll CTCR DINC LL_MDMA_ConfigTransfer\n 1142 * @rmtoll CTCR SINC LL_MDMA_ConfigTransfer 1143 * @param MDMAx MDMAx Instance 1144 * @param Channel This parameter can be one of the following values: 1145 * @arg @ref LL_MDMA_CHANNEL_0 1146 * @arg @ref LL_MDMA_CHANNEL_1 1147 * @arg @ref LL_MDMA_CHANNEL_2 1148 * @arg @ref LL_MDMA_CHANNEL_3 1149 * @arg @ref LL_MDMA_CHANNEL_4 1150 * @arg @ref LL_MDMA_CHANNEL_5 1151 * @arg @ref LL_MDMA_CHANNEL_6 1152 * @arg @ref LL_MDMA_CHANNEL_7 1153 * @arg @ref LL_MDMA_CHANNEL_8 1154 * @arg @ref LL_MDMA_CHANNEL_9 1155 * @arg @ref LL_MDMA_CHANNEL_10 1156 * @arg @ref LL_MDMA_CHANNEL_11 1157 * @arg @ref LL_MDMA_CHANNEL_12 1158 * @arg @ref LL_MDMA_CHANNEL_13 1159 * @arg @ref LL_MDMA_CHANNEL_14 1160 * @arg @ref LL_MDMA_CHANNEL_15 1161 * @param Configuration This parameter must be a combination of all the following values: 1162 * @arg @ref LL_MDMA_BUFF_WRITE_DISABLE or @ref LL_MDMA_BUFF_WRITE_ENABLE 1163 * @arg @ref LL_MDMA_REQUEST_MODE_HW or @ref LL_MDMA_REQUEST_MODE_SW 1164 * @arg @ref LL_MDMA_BUFFER_TRANSFER or @ref LL_MDMA_BLOCK_TRANSFER or @ref LL_MDMA_REPEAT_BLOCK_TRANSFER or @ref LL_MDMA_FULL_TRANSFER 1165 * @arg @ref LL_MDMA_DATAALIGN_RIGHT or @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED or @ref LL_MDMA_DATAALIGN_LEFT 1166 * @arg @ref LL_MDMA_PACK_DISABLE or @ref LL_MDMA_PACK_ENABLE 1167 * @arg @ref LL_MDMA_DEST_BURST_SINGLE or @ref LL_MDMA_DEST_BURST_2BEATS or @ref LL_MDMA_DEST_BURST_4BEATS or @ref LL_MDMA_DEST_BURST_8BEATS 1168 * or @ref LL_MDMA_DEST_BURST_16BEATS or @ref LL_MDMA_DEST_BURST_32BEATS or @ref LL_MDMA_DEST_BURST_64BEATS or @ref LL_MDMA_DEST_BURST_128BEATS 1169 * @arg @ref LL_MDMA_SRC_BURST_SINGLE or @ref LL_MDMA_SRC_BURST_2BEATS or @ref LL_MDMA_SRC_BURST_4BEATS or @ref LL_MDMA_SRC_BURST_8BEATS 1170 * or @ref LL_MDMA_SRC_BURST_16BEATS or @ref LL_MDMA_SRC_BURST_32BEATS or @ref LL_MDMA_SRC_BURST_64BEATS or @ref LL_MDMA_SRC_BURST_128BEATS 1171 * @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE or @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD or @ref LL_MDMA_DEST_INC_OFFSET_WORD or @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD 1172 * @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE or @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD or @ref LL_MDMA_SRC_INC_OFFSET_WORD or @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD 1173 * @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE or @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD or @ref LL_MDMA_DEST_DATA_SIZE_WORD or @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD 1174 * @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE or @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD or @ref LL_MDMA_SRC_DATA_SIZE_WORD or @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD 1175 * @arg @ref LL_MDMA_DEST_FIXED or @ref LL_MDMA_DEST_INCREMENT or @ref LL_MDMA_DEST_DECREMENT 1176 * @arg @ref LL_MDMA_SRC_FIXED or @ref LL_MDMA_SRC_INCREMENT or @ref LL_MDMA_SRC_DECREMENT 1177 * @param BufferXferLength This parameter can be a value Between 0 to 0x0000007F 1178 * @retval None 1179 */ 1180 __STATIC_INLINE void LL_MDMA_ConfigTransfer(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration, uint32_t BufferXferLength) 1181 { 1182 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1183 1184 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, 1185 Configuration | ((BufferXferLength << MDMA_CTCR_TLEN_Pos) & MDMA_CTCR_TLEN_Msk)); 1186 } 1187 1188 /** 1189 * @brief Enable Bufferable Write Mode. 1190 * @rmtoll CTCR BWM LL_MDMA_EnableBufferableWrMode 1191 * @param MDMAx MDMAx Instance 1192 * @param Channel This parameter can be one of the following values: 1193 * @arg @ref LL_MDMA_CHANNEL_0 1194 * @arg @ref LL_MDMA_CHANNEL_1 1195 * @arg @ref LL_MDMA_CHANNEL_2 1196 * @arg @ref LL_MDMA_CHANNEL_3 1197 * @arg @ref LL_MDMA_CHANNEL_4 1198 * @arg @ref LL_MDMA_CHANNEL_5 1199 * @arg @ref LL_MDMA_CHANNEL_6 1200 * @arg @ref LL_MDMA_CHANNEL_7 1201 * @arg @ref LL_MDMA_CHANNEL_8 1202 * @arg @ref LL_MDMA_CHANNEL_9 1203 * @arg @ref LL_MDMA_CHANNEL_10 1204 * @arg @ref LL_MDMA_CHANNEL_11 1205 * @arg @ref LL_MDMA_CHANNEL_12 1206 * @arg @ref LL_MDMA_CHANNEL_13 1207 * @arg @ref LL_MDMA_CHANNEL_14 1208 * @arg @ref LL_MDMA_CHANNEL_15 1209 * @retval None 1210 */ 1211 __STATIC_INLINE void LL_MDMA_EnableBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 1212 { 1213 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1214 1215 SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM); 1216 } 1217 1218 /** 1219 * @brief Disable Bufferable Write Mode. 1220 * @rmtoll CTCR BWM LL_MDMA_DisableBufferableWrMode 1221 * @param MDMAx MDMAx Instance 1222 * @param Channel This parameter can be one of the following values: 1223 * @arg @ref LL_MDMA_CHANNEL_0 1224 * @arg @ref LL_MDMA_CHANNEL_1 1225 * @arg @ref LL_MDMA_CHANNEL_2 1226 * @arg @ref LL_MDMA_CHANNEL_3 1227 * @arg @ref LL_MDMA_CHANNEL_4 1228 * @arg @ref LL_MDMA_CHANNEL_5 1229 * @arg @ref LL_MDMA_CHANNEL_6 1230 * @arg @ref LL_MDMA_CHANNEL_7 1231 * @arg @ref LL_MDMA_CHANNEL_8 1232 * @arg @ref LL_MDMA_CHANNEL_9 1233 * @arg @ref LL_MDMA_CHANNEL_10 1234 * @arg @ref LL_MDMA_CHANNEL_11 1235 * @arg @ref LL_MDMA_CHANNEL_12 1236 * @arg @ref LL_MDMA_CHANNEL_13 1237 * @arg @ref LL_MDMA_CHANNEL_14 1238 * @arg @ref LL_MDMA_CHANNEL_15 1239 * @retval None 1240 */ 1241 __STATIC_INLINE void LL_MDMA_DisableBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 1242 { 1243 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1244 1245 CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM); 1246 } 1247 1248 /** 1249 * @brief Check if Bufferable Write Mode is enabled or disabled. 1250 * @rmtoll CTCR BWM LL_MDMA_IsEnabledBufferableWrMode 1251 * @param MDMAx MDMAx Instance 1252 * @param Channel This parameter can be one of the following values: 1253 * @arg @ref LL_MDMA_CHANNEL_0 1254 * @arg @ref LL_MDMA_CHANNEL_1 1255 * @arg @ref LL_MDMA_CHANNEL_2 1256 * @arg @ref LL_MDMA_CHANNEL_3 1257 * @arg @ref LL_MDMA_CHANNEL_4 1258 * @arg @ref LL_MDMA_CHANNEL_5 1259 * @arg @ref LL_MDMA_CHANNEL_6 1260 * @arg @ref LL_MDMA_CHANNEL_7 1261 * @arg @ref LL_MDMA_CHANNEL_8 1262 * @arg @ref LL_MDMA_CHANNEL_9 1263 * @arg @ref LL_MDMA_CHANNEL_10 1264 * @arg @ref LL_MDMA_CHANNEL_11 1265 * @arg @ref LL_MDMA_CHANNEL_12 1266 * @arg @ref LL_MDMA_CHANNEL_13 1267 * @arg @ref LL_MDMA_CHANNEL_14 1268 * @arg @ref LL_MDMA_CHANNEL_15 1269 * @retval State of bit (1 or 0). 1270 */ 1271 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 1272 { 1273 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1274 1275 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM) == (MDMA_CTCR_BWM)) ? 1UL : 0UL); 1276 } 1277 1278 /** 1279 * @brief Set Request Mode. 1280 * @rmtoll CTCR SWRM LL_MDMA_SetRequestMode 1281 * @param MDMAx MDMAx Instance 1282 * @param Channel This parameter can be one of the following values: 1283 * @arg @ref LL_MDMA_CHANNEL_0 1284 * @arg @ref LL_MDMA_CHANNEL_1 1285 * @arg @ref LL_MDMA_CHANNEL_2 1286 * @arg @ref LL_MDMA_CHANNEL_3 1287 * @arg @ref LL_MDMA_CHANNEL_4 1288 * @arg @ref LL_MDMA_CHANNEL_5 1289 * @arg @ref LL_MDMA_CHANNEL_6 1290 * @arg @ref LL_MDMA_CHANNEL_7 1291 * @arg @ref LL_MDMA_CHANNEL_8 1292 * @arg @ref LL_MDMA_CHANNEL_9 1293 * @arg @ref LL_MDMA_CHANNEL_10 1294 * @arg @ref LL_MDMA_CHANNEL_11 1295 * @arg @ref LL_MDMA_CHANNEL_12 1296 * @arg @ref LL_MDMA_CHANNEL_13 1297 * @arg @ref LL_MDMA_CHANNEL_14 1298 * @arg @ref LL_MDMA_CHANNEL_15 1299 * @param RequestMode This parameter can be one of the following values: 1300 * @arg @ref LL_MDMA_REQUEST_MODE_HW 1301 * @arg @ref LL_MDMA_REQUEST_MODE_SW 1302 * @retval None 1303 */ 1304 __STATIC_INLINE void LL_MDMA_SetRequestMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t RequestMode) 1305 { 1306 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1307 1308 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SWRM, RequestMode); 1309 } 1310 1311 /** 1312 * @brief Get Request Mode. 1313 * @rmtoll CTCR SWRM LL_MDMA_GetRequestMode 1314 * @param MDMAx MDMAx Instance 1315 * @param Channel This parameter can be one of the following values: 1316 * @arg @ref LL_MDMA_CHANNEL_0 1317 * @arg @ref LL_MDMA_CHANNEL_1 1318 * @arg @ref LL_MDMA_CHANNEL_2 1319 * @arg @ref LL_MDMA_CHANNEL_3 1320 * @arg @ref LL_MDMA_CHANNEL_4 1321 * @arg @ref LL_MDMA_CHANNEL_5 1322 * @arg @ref LL_MDMA_CHANNEL_6 1323 * @arg @ref LL_MDMA_CHANNEL_7 1324 * @arg @ref LL_MDMA_CHANNEL_8 1325 * @arg @ref LL_MDMA_CHANNEL_9 1326 * @arg @ref LL_MDMA_CHANNEL_10 1327 * @arg @ref LL_MDMA_CHANNEL_11 1328 * @arg @ref LL_MDMA_CHANNEL_12 1329 * @arg @ref LL_MDMA_CHANNEL_13 1330 * @arg @ref LL_MDMA_CHANNEL_14 1331 * @arg @ref LL_MDMA_CHANNEL_15 1332 * @retval Returned value can be one of the following values: 1333 * @arg @ref LL_MDMA_REQUEST_MODE_HW 1334 * @arg @ref LL_MDMA_REQUEST_MODE_SW 1335 * @retval None 1336 */ 1337 __STATIC_INLINE uint32_t LL_MDMA_GetRequestMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 1338 { 1339 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1340 1341 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SWRM)); 1342 } 1343 1344 /** 1345 * @brief Set Trigger Mode. 1346 * @rmtoll CTCR TRGM LL_MDMA_SetTriggerMode 1347 * @param MDMAx MDMAx Instance 1348 * @param Channel This parameter can be one of the following values: 1349 * @arg @ref LL_MDMA_CHANNEL_0 1350 * @arg @ref LL_MDMA_CHANNEL_1 1351 * @arg @ref LL_MDMA_CHANNEL_2 1352 * @arg @ref LL_MDMA_CHANNEL_3 1353 * @arg @ref LL_MDMA_CHANNEL_4 1354 * @arg @ref LL_MDMA_CHANNEL_5 1355 * @arg @ref LL_MDMA_CHANNEL_6 1356 * @arg @ref LL_MDMA_CHANNEL_7 1357 * @arg @ref LL_MDMA_CHANNEL_8 1358 * @arg @ref LL_MDMA_CHANNEL_9 1359 * @arg @ref LL_MDMA_CHANNEL_10 1360 * @arg @ref LL_MDMA_CHANNEL_11 1361 * @arg @ref LL_MDMA_CHANNEL_12 1362 * @arg @ref LL_MDMA_CHANNEL_13 1363 * @arg @ref LL_MDMA_CHANNEL_14 1364 * @arg @ref LL_MDMA_CHANNEL_15 1365 * @param TriggerMode This parameter can be one of the following values: 1366 * @arg @ref LL_MDMA_BUFFER_TRANSFER 1367 * @arg @ref LL_MDMA_BLOCK_TRANSFER 1368 * @arg @ref LL_MDMA_REPEAT_BLOCK_TRANSFER 1369 * @arg @ref LL_MDMA_FULL_TRANSFER 1370 * @retval None 1371 */ 1372 __STATIC_INLINE void LL_MDMA_SetTriggerMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t TriggerMode) 1373 { 1374 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1375 1376 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TRGM, TriggerMode); 1377 } 1378 1379 /** 1380 * @brief Get Trigger Mode. 1381 * @rmtoll CTCR TRGM LL_MDMA_GetTriggerMode 1382 * @param MDMAx MDMAx Instance 1383 * @param Channel This parameter can be one of the following values: 1384 * @arg @ref LL_MDMA_CHANNEL_0 1385 * @arg @ref LL_MDMA_CHANNEL_1 1386 * @arg @ref LL_MDMA_CHANNEL_2 1387 * @arg @ref LL_MDMA_CHANNEL_3 1388 * @arg @ref LL_MDMA_CHANNEL_4 1389 * @arg @ref LL_MDMA_CHANNEL_5 1390 * @arg @ref LL_MDMA_CHANNEL_6 1391 * @arg @ref LL_MDMA_CHANNEL_7 1392 * @arg @ref LL_MDMA_CHANNEL_8 1393 * @arg @ref LL_MDMA_CHANNEL_9 1394 * @arg @ref LL_MDMA_CHANNEL_10 1395 * @arg @ref LL_MDMA_CHANNEL_11 1396 * @arg @ref LL_MDMA_CHANNEL_12 1397 * @arg @ref LL_MDMA_CHANNEL_13 1398 * @arg @ref LL_MDMA_CHANNEL_14 1399 * @arg @ref LL_MDMA_CHANNEL_15 1400 * @retval Returned value can be one of the following values: 1401 * @arg @ref LL_MDMA_BUFFER_TRANSFER 1402 * @arg @ref LL_MDMA_BLOCK_TRANSFER 1403 * @arg @ref LL_MDMA_REPEAT_BLOCK_TRANSFER 1404 * @arg @ref LL_MDMA_FULL_TRANSFER 1405 * @retval None 1406 */ 1407 __STATIC_INLINE uint32_t LL_MDMA_GetTriggerMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 1408 { 1409 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1410 1411 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TRGM)); 1412 } 1413 1414 /** 1415 * @brief Set Padding Alignment. 1416 * @rmtoll CTCR PAM LL_MDMA_SetPaddingAlignment 1417 * @param MDMAx MDMAx Instance 1418 * @param Channel This parameter can be one of the following values: 1419 * @arg @ref LL_MDMA_CHANNEL_0 1420 * @arg @ref LL_MDMA_CHANNEL_1 1421 * @arg @ref LL_MDMA_CHANNEL_2 1422 * @arg @ref LL_MDMA_CHANNEL_3 1423 * @arg @ref LL_MDMA_CHANNEL_4 1424 * @arg @ref LL_MDMA_CHANNEL_5 1425 * @arg @ref LL_MDMA_CHANNEL_6 1426 * @arg @ref LL_MDMA_CHANNEL_7 1427 * @arg @ref LL_MDMA_CHANNEL_8 1428 * @arg @ref LL_MDMA_CHANNEL_9 1429 * @arg @ref LL_MDMA_CHANNEL_10 1430 * @arg @ref LL_MDMA_CHANNEL_11 1431 * @arg @ref LL_MDMA_CHANNEL_12 1432 * @arg @ref LL_MDMA_CHANNEL_13 1433 * @arg @ref LL_MDMA_CHANNEL_14 1434 * @arg @ref LL_MDMA_CHANNEL_15 1435 * @param PaddingAlignment This parameter can be one of the following values: 1436 * @arg @ref LL_MDMA_DATAALIGN_RIGHT 1437 * @arg @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED 1438 * @arg @ref LL_MDMA_DATAALIGN_LEFT 1439 * @retval None 1440 */ 1441 __STATIC_INLINE void LL_MDMA_SetPaddingAlignment(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t PaddingAlignment) 1442 { 1443 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1444 1445 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PAM, PaddingAlignment); 1446 } 1447 1448 /** 1449 * @brief Get Padding Alignment. 1450 * @rmtoll CTCR PAM LL_MDMA_GetPaddingAlignment 1451 * @param MDMAx MDMAx Instance 1452 * @param Channel This parameter can be one of the following values: 1453 * @arg @ref LL_MDMA_CHANNEL_0 1454 * @arg @ref LL_MDMA_CHANNEL_1 1455 * @arg @ref LL_MDMA_CHANNEL_2 1456 * @arg @ref LL_MDMA_CHANNEL_3 1457 * @arg @ref LL_MDMA_CHANNEL_4 1458 * @arg @ref LL_MDMA_CHANNEL_5 1459 * @arg @ref LL_MDMA_CHANNEL_6 1460 * @arg @ref LL_MDMA_CHANNEL_7 1461 * @arg @ref LL_MDMA_CHANNEL_8 1462 * @arg @ref LL_MDMA_CHANNEL_9 1463 * @arg @ref LL_MDMA_CHANNEL_10 1464 * @arg @ref LL_MDMA_CHANNEL_11 1465 * @arg @ref LL_MDMA_CHANNEL_12 1466 * @arg @ref LL_MDMA_CHANNEL_13 1467 * @arg @ref LL_MDMA_CHANNEL_14 1468 * @arg @ref LL_MDMA_CHANNEL_15 1469 * @retval Returned value can be one of the following values: 1470 * @arg @ref LL_MDMA_DATAALIGN_RIGHT 1471 * @arg @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED 1472 * @arg @ref LL_MDMA_DATAALIGN_LEFT 1473 * @retval None 1474 */ 1475 __STATIC_INLINE uint32_t LL_MDMA_GetPaddingAlignment(MDMA_TypeDef *MDMAx, uint32_t Channel) 1476 { 1477 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1478 1479 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PAM)); 1480 } 1481 1482 1483 /** 1484 * @brief Enable Packing. 1485 * @rmtoll CTCR PKE LL_MDMA_EnablePacking 1486 * @param MDMAx MDMAx Instance 1487 * @param Channel This parameter can be one of the following values: 1488 * @arg @ref LL_MDMA_CHANNEL_0 1489 * @arg @ref LL_MDMA_CHANNEL_1 1490 * @arg @ref LL_MDMA_CHANNEL_2 1491 * @arg @ref LL_MDMA_CHANNEL_3 1492 * @arg @ref LL_MDMA_CHANNEL_4 1493 * @arg @ref LL_MDMA_CHANNEL_5 1494 * @arg @ref LL_MDMA_CHANNEL_6 1495 * @arg @ref LL_MDMA_CHANNEL_7 1496 * @arg @ref LL_MDMA_CHANNEL_8 1497 * @arg @ref LL_MDMA_CHANNEL_9 1498 * @arg @ref LL_MDMA_CHANNEL_10 1499 * @arg @ref LL_MDMA_CHANNEL_11 1500 * @arg @ref LL_MDMA_CHANNEL_12 1501 * @arg @ref LL_MDMA_CHANNEL_13 1502 * @arg @ref LL_MDMA_CHANNEL_14 1503 * @arg @ref LL_MDMA_CHANNEL_15 1504 * @retval None 1505 */ 1506 __STATIC_INLINE void LL_MDMA_EnablePacking(MDMA_TypeDef *MDMAx, uint32_t Channel) 1507 { 1508 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1509 1510 SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE); 1511 } 1512 1513 /** 1514 * @brief Disable Packing. 1515 * @rmtoll CTCR PKE LL_MDMA_DisablePacking 1516 * @param MDMAx MDMAx Instance 1517 * @param Channel This parameter can be one of the following values: 1518 * @arg @ref LL_MDMA_CHANNEL_0 1519 * @arg @ref LL_MDMA_CHANNEL_1 1520 * @arg @ref LL_MDMA_CHANNEL_2 1521 * @arg @ref LL_MDMA_CHANNEL_3 1522 * @arg @ref LL_MDMA_CHANNEL_4 1523 * @arg @ref LL_MDMA_CHANNEL_5 1524 * @arg @ref LL_MDMA_CHANNEL_6 1525 * @arg @ref LL_MDMA_CHANNEL_7 1526 * @arg @ref LL_MDMA_CHANNEL_8 1527 * @arg @ref LL_MDMA_CHANNEL_9 1528 * @arg @ref LL_MDMA_CHANNEL_10 1529 * @arg @ref LL_MDMA_CHANNEL_11 1530 * @arg @ref LL_MDMA_CHANNEL_12 1531 * @arg @ref LL_MDMA_CHANNEL_13 1532 * @arg @ref LL_MDMA_CHANNEL_14 1533 * @arg @ref LL_MDMA_CHANNEL_15 1534 * @retval None 1535 */ 1536 __STATIC_INLINE void LL_MDMA_DisablePacking(MDMA_TypeDef *MDMAx, uint32_t Channel) 1537 { 1538 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1539 1540 CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE); 1541 } 1542 1543 /** 1544 * @brief Check if packing is enabled or disabled. 1545 * @rmtoll CTCR PKE LL_MDMA_IsEnabledPacking 1546 * @param MDMAx MDMAx Instance 1547 * @param Channel This parameter can be one of the following values: 1548 * @arg @ref LL_MDMA_CHANNEL_0 1549 * @arg @ref LL_MDMA_CHANNEL_1 1550 * @arg @ref LL_MDMA_CHANNEL_2 1551 * @arg @ref LL_MDMA_CHANNEL_3 1552 * @arg @ref LL_MDMA_CHANNEL_4 1553 * @arg @ref LL_MDMA_CHANNEL_5 1554 * @arg @ref LL_MDMA_CHANNEL_6 1555 * @arg @ref LL_MDMA_CHANNEL_7 1556 * @arg @ref LL_MDMA_CHANNEL_8 1557 * @arg @ref LL_MDMA_CHANNEL_9 1558 * @arg @ref LL_MDMA_CHANNEL_10 1559 * @arg @ref LL_MDMA_CHANNEL_11 1560 * @arg @ref LL_MDMA_CHANNEL_12 1561 * @arg @ref LL_MDMA_CHANNEL_13 1562 * @arg @ref LL_MDMA_CHANNEL_14 1563 * @arg @ref LL_MDMA_CHANNEL_15 1564 * @retval State of bit (1 or 0). 1565 */ 1566 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledPacking(MDMA_TypeDef *MDMAx, uint32_t Channel) 1567 { 1568 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1569 1570 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE) == (MDMA_CTCR_PKE)) ? 1UL : 0UL); 1571 } 1572 1573 /** 1574 * @brief Set Buffer Transfer Length. 1575 * @rmtoll CTCR TLEN LL_MDMA_SetBufferTransferLength 1576 * @param MDMAx MDMAx Instance 1577 * @param Channel This parameter can be one of the following values: 1578 * @arg @ref LL_MDMA_CHANNEL_0 1579 * @arg @ref LL_MDMA_CHANNEL_1 1580 * @arg @ref LL_MDMA_CHANNEL_2 1581 * @arg @ref LL_MDMA_CHANNEL_3 1582 * @arg @ref LL_MDMA_CHANNEL_4 1583 * @arg @ref LL_MDMA_CHANNEL_5 1584 * @arg @ref LL_MDMA_CHANNEL_6 1585 * @arg @ref LL_MDMA_CHANNEL_7 1586 * @arg @ref LL_MDMA_CHANNEL_8 1587 * @arg @ref LL_MDMA_CHANNEL_9 1588 * @arg @ref LL_MDMA_CHANNEL_10 1589 * @arg @ref LL_MDMA_CHANNEL_11 1590 * @arg @ref LL_MDMA_CHANNEL_12 1591 * @arg @ref LL_MDMA_CHANNEL_13 1592 * @arg @ref LL_MDMA_CHANNEL_14 1593 * @arg @ref LL_MDMA_CHANNEL_15 1594 * @param Length Between 0 to 0x0000007F 1595 * @retval None 1596 */ 1597 __STATIC_INLINE void LL_MDMA_SetBufferTransferLength(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Length) 1598 { 1599 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1600 1601 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TLEN, 1602 (Length << MDMA_CTCR_TLEN_Pos) & MDMA_CTCR_TLEN_Msk); 1603 } 1604 1605 /** 1606 * @brief Get Buffer Transfer Length. 1607 * @rmtoll CTCR TLEN LL_MDMA_GetBufferTransferLength 1608 * @param MDMAx MDMAx Instance 1609 * @param Channel This parameter can be one of the following values: 1610 * @arg @ref LL_MDMA_CHANNEL_0 1611 * @arg @ref LL_MDMA_CHANNEL_1 1612 * @arg @ref LL_MDMA_CHANNEL_2 1613 * @arg @ref LL_MDMA_CHANNEL_3 1614 * @arg @ref LL_MDMA_CHANNEL_4 1615 * @arg @ref LL_MDMA_CHANNEL_5 1616 * @arg @ref LL_MDMA_CHANNEL_6 1617 * @arg @ref LL_MDMA_CHANNEL_7 1618 * @arg @ref LL_MDMA_CHANNEL_8 1619 * @arg @ref LL_MDMA_CHANNEL_9 1620 * @arg @ref LL_MDMA_CHANNEL_10 1621 * @arg @ref LL_MDMA_CHANNEL_11 1622 * @arg @ref LL_MDMA_CHANNEL_12 1623 * @arg @ref LL_MDMA_CHANNEL_13 1624 * @arg @ref LL_MDMA_CHANNEL_14 1625 * @arg @ref LL_MDMA_CHANNEL_15 1626 * @retval Between 0 to 0x0000007F 1627 * @retval None 1628 */ 1629 __STATIC_INLINE uint32_t LL_MDMA_GetBufferTransferLength(MDMA_TypeDef *MDMAx, uint32_t Channel) 1630 { 1631 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1632 1633 return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TLEN) >> MDMA_CTCR_TLEN_Pos); 1634 } 1635 1636 /** 1637 * @brief Set Destination burst transfer. 1638 * @rmtoll CTCR DBURST LL_MDMA_SetDestinationBurstSize 1639 * @param MDMAx MDMAx Instance 1640 * @param Channel This parameter can be one of the following values: 1641 * @arg @ref LL_MDMA_CHANNEL_0 1642 * @arg @ref LL_MDMA_CHANNEL_1 1643 * @arg @ref LL_MDMA_CHANNEL_2 1644 * @arg @ref LL_MDMA_CHANNEL_3 1645 * @arg @ref LL_MDMA_CHANNEL_4 1646 * @arg @ref LL_MDMA_CHANNEL_5 1647 * @arg @ref LL_MDMA_CHANNEL_6 1648 * @arg @ref LL_MDMA_CHANNEL_7 1649 * @arg @ref LL_MDMA_CHANNEL_8 1650 * @arg @ref LL_MDMA_CHANNEL_9 1651 * @arg @ref LL_MDMA_CHANNEL_10 1652 * @arg @ref LL_MDMA_CHANNEL_11 1653 * @arg @ref LL_MDMA_CHANNEL_12 1654 * @arg @ref LL_MDMA_CHANNEL_13 1655 * @arg @ref LL_MDMA_CHANNEL_14 1656 * @arg @ref LL_MDMA_CHANNEL_15 1657 * @param Dburst This parameter can be one of the following values: 1658 * @arg @ref LL_MDMA_DEST_BURST_SINGLE 1659 * @arg @ref LL_MDMA_DEST_BURST_2BEATS 1660 * @arg @ref LL_MDMA_DEST_BURST_4BEATS 1661 * @arg @ref LL_MDMA_DEST_BURST_8BEATS 1662 * @arg @ref LL_MDMA_DEST_BURST_16BEATS 1663 * @arg @ref LL_MDMA_DEST_BURST_32BEATS 1664 * @arg @ref LL_MDMA_DEST_BURST_64BEATS 1665 * @arg @ref LL_MDMA_DEST_BURST_128BEATS 1666 * @retval None 1667 */ 1668 __STATIC_INLINE void LL_MDMA_SetDestinationBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Dburst) 1669 { 1670 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1671 1672 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DBURST, Dburst); 1673 } 1674 1675 /** 1676 * @brief Get Destination burst transfer. 1677 * @rmtoll CTCR DBURST LL_MDMA_GetDestinationBurstSize 1678 * @param MDMAx MDMAx Instance 1679 * @param Channel This parameter can be one of the following values: 1680 * @arg @ref LL_MDMA_CHANNEL_0 1681 * @arg @ref LL_MDMA_CHANNEL_1 1682 * @arg @ref LL_MDMA_CHANNEL_2 1683 * @arg @ref LL_MDMA_CHANNEL_3 1684 * @arg @ref LL_MDMA_CHANNEL_4 1685 * @arg @ref LL_MDMA_CHANNEL_5 1686 * @arg @ref LL_MDMA_CHANNEL_6 1687 * @arg @ref LL_MDMA_CHANNEL_7 1688 * @arg @ref LL_MDMA_CHANNEL_8 1689 * @arg @ref LL_MDMA_CHANNEL_9 1690 * @arg @ref LL_MDMA_CHANNEL_10 1691 * @arg @ref LL_MDMA_CHANNEL_11 1692 * @arg @ref LL_MDMA_CHANNEL_12 1693 * @arg @ref LL_MDMA_CHANNEL_13 1694 * @arg @ref LL_MDMA_CHANNEL_14 1695 * @arg @ref LL_MDMA_CHANNEL_15 1696 * @retval Returned value can be one of the following values: 1697 * @arg @ref LL_MDMA_DEST_BURST_SINGLE 1698 * @arg @ref LL_MDMA_DEST_BURST_2BEATS 1699 * @arg @ref LL_MDMA_DEST_BURST_4BEATS 1700 * @arg @ref LL_MDMA_DEST_BURST_8BEATS 1701 * @arg @ref LL_MDMA_DEST_BURST_16BEATS 1702 * @arg @ref LL_MDMA_DEST_BURST_32BEATS 1703 * @arg @ref LL_MDMA_DEST_BURST_64BEATS 1704 * @arg @ref LL_MDMA_DEST_BURST_128BEATS 1705 * @retval None 1706 */ 1707 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 1708 { 1709 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1710 1711 return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DBURST)); 1712 } 1713 1714 /** 1715 * @brief Set Source burst transfer. 1716 * @rmtoll CTCR SBURST LL_MDMA_SetSourceBurstSize 1717 * @param MDMAx MDMAx Instance 1718 * @param Channel This parameter can be one of the following values: 1719 * @arg @ref LL_MDMA_CHANNEL_0 1720 * @arg @ref LL_MDMA_CHANNEL_1 1721 * @arg @ref LL_MDMA_CHANNEL_2 1722 * @arg @ref LL_MDMA_CHANNEL_3 1723 * @arg @ref LL_MDMA_CHANNEL_4 1724 * @arg @ref LL_MDMA_CHANNEL_5 1725 * @arg @ref LL_MDMA_CHANNEL_6 1726 * @arg @ref LL_MDMA_CHANNEL_7 1727 * @arg @ref LL_MDMA_CHANNEL_8 1728 * @arg @ref LL_MDMA_CHANNEL_9 1729 * @arg @ref LL_MDMA_CHANNEL_10 1730 * @arg @ref LL_MDMA_CHANNEL_11 1731 * @arg @ref LL_MDMA_CHANNEL_12 1732 * @arg @ref LL_MDMA_CHANNEL_13 1733 * @arg @ref LL_MDMA_CHANNEL_14 1734 * @arg @ref LL_MDMA_CHANNEL_15 1735 * @param Sburst This parameter can be one of the following values: 1736 * @arg @ref LL_MDMA_SRC_BURST_SINGLE 1737 * @arg @ref LL_MDMA_SRC_BURST_2BEATS 1738 * @arg @ref LL_MDMA_SRC_BURST_4BEATS 1739 * @arg @ref LL_MDMA_SRC_BURST_8BEATS 1740 * @arg @ref LL_MDMA_SRC_BURST_16BEATS 1741 * @arg @ref LL_MDMA_SRC_BURST_32BEATS 1742 * @arg @ref LL_MDMA_SRC_BURST_64BEATS 1743 * @arg @ref LL_MDMA_SRC_BURST_128BEATS 1744 * @retval None 1745 */ 1746 __STATIC_INLINE void LL_MDMA_SetSourceBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Sburst) 1747 { 1748 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1749 1750 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SBURST, Sburst); 1751 } 1752 1753 /** 1754 * @brief Get Source burst transfer. 1755 * @rmtoll CTCR SBURST LL_MDMA_GetSourceBurstSize 1756 * @param MDMAx MDMAx Instance 1757 * @param Channel This parameter can be one of the following values: 1758 * @arg @ref LL_MDMA_CHANNEL_0 1759 * @arg @ref LL_MDMA_CHANNEL_1 1760 * @arg @ref LL_MDMA_CHANNEL_2 1761 * @arg @ref LL_MDMA_CHANNEL_3 1762 * @arg @ref LL_MDMA_CHANNEL_4 1763 * @arg @ref LL_MDMA_CHANNEL_5 1764 * @arg @ref LL_MDMA_CHANNEL_6 1765 * @arg @ref LL_MDMA_CHANNEL_7 1766 * @arg @ref LL_MDMA_CHANNEL_8 1767 * @arg @ref LL_MDMA_CHANNEL_9 1768 * @arg @ref LL_MDMA_CHANNEL_10 1769 * @arg @ref LL_MDMA_CHANNEL_11 1770 * @arg @ref LL_MDMA_CHANNEL_12 1771 * @arg @ref LL_MDMA_CHANNEL_13 1772 * @arg @ref LL_MDMA_CHANNEL_14 1773 * @arg @ref LL_MDMA_CHANNEL_15 1774 * @retval Returned value can be one of the following values: 1775 * @arg @ref LL_MDMA_SRC_BURST_SINGLE 1776 * @arg @ref LL_MDMA_SRC_BURST_2BEATS 1777 * @arg @ref LL_MDMA_SRC_BURST_4BEATS 1778 * @arg @ref LL_MDMA_SRC_BURST_8BEATS 1779 * @arg @ref LL_MDMA_SRC_BURST_16BEATS 1780 * @arg @ref LL_MDMA_SRC_BURST_32BEATS 1781 * @arg @ref LL_MDMA_SRC_BURST_64BEATS 1782 * @arg @ref LL_MDMA_SRC_BURST_128BEATS 1783 * @retval None 1784 */ 1785 __STATIC_INLINE uint32_t LL_MDMA_GetSourceBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 1786 { 1787 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1788 1789 return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SBURST)); 1790 } 1791 1792 /** 1793 * @brief Set Destination Increment Offset Size. 1794 * @rmtoll CTCR DINCOS LL_MDMA_SetDestinationIncSize 1795 * @param MDMAx MDMAx Instance 1796 * @param Channel This parameter can be one of the following values: 1797 * @arg @ref LL_MDMA_CHANNEL_0 1798 * @arg @ref LL_MDMA_CHANNEL_1 1799 * @arg @ref LL_MDMA_CHANNEL_2 1800 * @arg @ref LL_MDMA_CHANNEL_3 1801 * @arg @ref LL_MDMA_CHANNEL_4 1802 * @arg @ref LL_MDMA_CHANNEL_5 1803 * @arg @ref LL_MDMA_CHANNEL_6 1804 * @arg @ref LL_MDMA_CHANNEL_7 1805 * @arg @ref LL_MDMA_CHANNEL_8 1806 * @arg @ref LL_MDMA_CHANNEL_9 1807 * @arg @ref LL_MDMA_CHANNEL_10 1808 * @arg @ref LL_MDMA_CHANNEL_11 1809 * @arg @ref LL_MDMA_CHANNEL_12 1810 * @arg @ref LL_MDMA_CHANNEL_13 1811 * @arg @ref LL_MDMA_CHANNEL_14 1812 * @arg @ref LL_MDMA_CHANNEL_15 1813 * @param IncSize This parameter can be one of the following values: 1814 * @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE 1815 * @arg @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD 1816 * @arg @ref LL_MDMA_DEST_INC_OFFSET_WORD 1817 * @arg @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD 1818 * @retval None 1819 */ 1820 __STATIC_INLINE void LL_MDMA_SetDestinationIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t IncSize) 1821 { 1822 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1823 1824 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINCOS, IncSize); 1825 } 1826 1827 /** 1828 * @brief Get Destination Increment Offset Size. 1829 * @rmtoll CTCR DINCOS LL_MDMA_GetDestinationIncSize 1830 * @param MDMAx MDMAx Instance 1831 * @param Channel This parameter can be one of the following values: 1832 * @arg @ref LL_MDMA_CHANNEL_0 1833 * @arg @ref LL_MDMA_CHANNEL_1 1834 * @arg @ref LL_MDMA_CHANNEL_2 1835 * @arg @ref LL_MDMA_CHANNEL_3 1836 * @arg @ref LL_MDMA_CHANNEL_4 1837 * @arg @ref LL_MDMA_CHANNEL_5 1838 * @arg @ref LL_MDMA_CHANNEL_6 1839 * @arg @ref LL_MDMA_CHANNEL_7 1840 * @arg @ref LL_MDMA_CHANNEL_8 1841 * @arg @ref LL_MDMA_CHANNEL_9 1842 * @arg @ref LL_MDMA_CHANNEL_10 1843 * @arg @ref LL_MDMA_CHANNEL_11 1844 * @arg @ref LL_MDMA_CHANNEL_12 1845 * @arg @ref LL_MDMA_CHANNEL_13 1846 * @arg @ref LL_MDMA_CHANNEL_14 1847 * @arg @ref LL_MDMA_CHANNEL_15 1848 * @retval Returned value can be one of the following values: 1849 * @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE 1850 * @arg @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD 1851 * @arg @ref LL_MDMA_DEST_INC_OFFSET_WORD 1852 * @arg @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD 1853 * @retval None 1854 */ 1855 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 1856 { 1857 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1858 1859 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINCOS)); 1860 } 1861 1862 /** 1863 * @brief Set Source Increment Offset Size. 1864 * @rmtoll CTCR SINCOS LL_MDMA_SetSourceIncSize 1865 * @param MDMAx MDMAx Instance 1866 * @param Channel This parameter can be one of the following values: 1867 * @arg @ref LL_MDMA_CHANNEL_0 1868 * @arg @ref LL_MDMA_CHANNEL_1 1869 * @arg @ref LL_MDMA_CHANNEL_2 1870 * @arg @ref LL_MDMA_CHANNEL_3 1871 * @arg @ref LL_MDMA_CHANNEL_4 1872 * @arg @ref LL_MDMA_CHANNEL_5 1873 * @arg @ref LL_MDMA_CHANNEL_6 1874 * @arg @ref LL_MDMA_CHANNEL_7 1875 * @arg @ref LL_MDMA_CHANNEL_8 1876 * @arg @ref LL_MDMA_CHANNEL_9 1877 * @arg @ref LL_MDMA_CHANNEL_10 1878 * @arg @ref LL_MDMA_CHANNEL_11 1879 * @arg @ref LL_MDMA_CHANNEL_12 1880 * @arg @ref LL_MDMA_CHANNEL_13 1881 * @arg @ref LL_MDMA_CHANNEL_14 1882 * @arg @ref LL_MDMA_CHANNEL_15 1883 * @param IncSize This parameter can be one of the following values: 1884 * @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE 1885 * @arg @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD 1886 * @arg @ref LL_MDMA_SRC_INC_OFFSET_WORD 1887 * @arg @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD 1888 * @retval None 1889 */ 1890 __STATIC_INLINE void LL_MDMA_SetSourceIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t IncSize) 1891 { 1892 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1893 1894 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINCOS, IncSize); 1895 } 1896 1897 /** 1898 * @brief Get Source Increment Offset Size. 1899 * @rmtoll CTCR SINCOS LL_MDMA_GetSourceIncSize 1900 * @param MDMAx MDMAx Instance 1901 * @param Channel This parameter can be one of the following values: 1902 * @arg @ref LL_MDMA_CHANNEL_0 1903 * @arg @ref LL_MDMA_CHANNEL_1 1904 * @arg @ref LL_MDMA_CHANNEL_2 1905 * @arg @ref LL_MDMA_CHANNEL_3 1906 * @arg @ref LL_MDMA_CHANNEL_4 1907 * @arg @ref LL_MDMA_CHANNEL_5 1908 * @arg @ref LL_MDMA_CHANNEL_6 1909 * @arg @ref LL_MDMA_CHANNEL_7 1910 * @arg @ref LL_MDMA_CHANNEL_8 1911 * @arg @ref LL_MDMA_CHANNEL_9 1912 * @arg @ref LL_MDMA_CHANNEL_10 1913 * @arg @ref LL_MDMA_CHANNEL_11 1914 * @arg @ref LL_MDMA_CHANNEL_12 1915 * @arg @ref LL_MDMA_CHANNEL_13 1916 * @arg @ref LL_MDMA_CHANNEL_14 1917 * @arg @ref LL_MDMA_CHANNEL_15 1918 * @retval Returned value can be one of the following values: 1919 * @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE 1920 * @arg @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD 1921 * @arg @ref LL_MDMA_SRC_INC_OFFSET_WORD 1922 * @arg @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD 1923 * @retval None 1924 */ 1925 __STATIC_INLINE uint32_t LL_MDMA_GetSourceIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 1926 { 1927 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1928 1929 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINCOS)); 1930 } 1931 1932 /** 1933 * @brief Set Destination Data Size. 1934 * @rmtoll CTCR DSIZE LL_MDMA_SetDestinationDataSize 1935 * @param MDMAx MDMAx Instance 1936 * @param Channel This parameter can be one of the following values: 1937 * @arg @ref LL_MDMA_CHANNEL_0 1938 * @arg @ref LL_MDMA_CHANNEL_1 1939 * @arg @ref LL_MDMA_CHANNEL_2 1940 * @arg @ref LL_MDMA_CHANNEL_3 1941 * @arg @ref LL_MDMA_CHANNEL_4 1942 * @arg @ref LL_MDMA_CHANNEL_5 1943 * @arg @ref LL_MDMA_CHANNEL_6 1944 * @arg @ref LL_MDMA_CHANNEL_7 1945 * @arg @ref LL_MDMA_CHANNEL_8 1946 * @arg @ref LL_MDMA_CHANNEL_9 1947 * @arg @ref LL_MDMA_CHANNEL_10 1948 * @arg @ref LL_MDMA_CHANNEL_11 1949 * @arg @ref LL_MDMA_CHANNEL_12 1950 * @arg @ref LL_MDMA_CHANNEL_13 1951 * @arg @ref LL_MDMA_CHANNEL_14 1952 * @arg @ref LL_MDMA_CHANNEL_15 1953 * @param DestDataSize This parameter can be one of the following values: 1954 * @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE 1955 * @arg @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD 1956 * @arg @ref LL_MDMA_DEST_DATA_SIZE_WORD 1957 * @arg @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD 1958 * @retval None 1959 */ 1960 __STATIC_INLINE void LL_MDMA_SetDestinationDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestDataSize) 1961 { 1962 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1963 1964 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DSIZE, DestDataSize); 1965 } 1966 1967 /** 1968 * @brief Get Destination Data Size. 1969 * @rmtoll CTCR DSIZE LL_MDMA_GetDestinationDataSize 1970 * @param MDMAx MDMAx Instance 1971 * @param Channel This parameter can be one of the following values: 1972 * @arg @ref LL_MDMA_CHANNEL_0 1973 * @arg @ref LL_MDMA_CHANNEL_1 1974 * @arg @ref LL_MDMA_CHANNEL_2 1975 * @arg @ref LL_MDMA_CHANNEL_3 1976 * @arg @ref LL_MDMA_CHANNEL_4 1977 * @arg @ref LL_MDMA_CHANNEL_5 1978 * @arg @ref LL_MDMA_CHANNEL_6 1979 * @arg @ref LL_MDMA_CHANNEL_7 1980 * @arg @ref LL_MDMA_CHANNEL_8 1981 * @arg @ref LL_MDMA_CHANNEL_9 1982 * @arg @ref LL_MDMA_CHANNEL_10 1983 * @arg @ref LL_MDMA_CHANNEL_11 1984 * @arg @ref LL_MDMA_CHANNEL_12 1985 * @arg @ref LL_MDMA_CHANNEL_13 1986 * @arg @ref LL_MDMA_CHANNEL_14 1987 * @arg @ref LL_MDMA_CHANNEL_15 1988 * @retval Returned value can be one of the following values: 1989 * @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE 1990 * @arg @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD 1991 * @arg @ref LL_MDMA_DEST_DATA_SIZE_WORD 1992 * @arg @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD 1993 * @retval None 1994 */ 1995 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 1996 { 1997 uint32_t mdma_base_addr = (uint32_t)MDMAx; 1998 1999 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DSIZE)); 2000 } 2001 2002 /** 2003 * @brief Set Source Data Size. 2004 * @rmtoll CTCR SSIZE LL_MDMA_SetSourceDataSize 2005 * @param MDMAx MDMAx Instance 2006 * @param Channel This parameter can be one of the following values: 2007 * @arg @ref LL_MDMA_CHANNEL_0 2008 * @arg @ref LL_MDMA_CHANNEL_1 2009 * @arg @ref LL_MDMA_CHANNEL_2 2010 * @arg @ref LL_MDMA_CHANNEL_3 2011 * @arg @ref LL_MDMA_CHANNEL_4 2012 * @arg @ref LL_MDMA_CHANNEL_5 2013 * @arg @ref LL_MDMA_CHANNEL_6 2014 * @arg @ref LL_MDMA_CHANNEL_7 2015 * @arg @ref LL_MDMA_CHANNEL_8 2016 * @arg @ref LL_MDMA_CHANNEL_9 2017 * @arg @ref LL_MDMA_CHANNEL_10 2018 * @arg @ref LL_MDMA_CHANNEL_11 2019 * @arg @ref LL_MDMA_CHANNEL_12 2020 * @arg @ref LL_MDMA_CHANNEL_13 2021 * @arg @ref LL_MDMA_CHANNEL_14 2022 * @arg @ref LL_MDMA_CHANNEL_15 2023 * @param SrcDataSize This parameter can be one of the following values: 2024 * @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE 2025 * @arg @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD 2026 * @arg @ref LL_MDMA_SRC_DATA_SIZE_WORD 2027 * @arg @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD 2028 * @retval None 2029 */ 2030 __STATIC_INLINE void LL_MDMA_SetSourceDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcDataSize) 2031 { 2032 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2033 2034 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SSIZE, SrcDataSize); 2035 } 2036 2037 /** 2038 * @brief Get Source Data Size. 2039 * @rmtoll CTCR SSIZE LL_MDMA_GetSourceDataSize 2040 * @param MDMAx MDMAx Instance 2041 * @param Channel This parameter can be one of the following values: 2042 * @arg @ref LL_MDMA_CHANNEL_0 2043 * @arg @ref LL_MDMA_CHANNEL_1 2044 * @arg @ref LL_MDMA_CHANNEL_2 2045 * @arg @ref LL_MDMA_CHANNEL_3 2046 * @arg @ref LL_MDMA_CHANNEL_4 2047 * @arg @ref LL_MDMA_CHANNEL_5 2048 * @arg @ref LL_MDMA_CHANNEL_6 2049 * @arg @ref LL_MDMA_CHANNEL_7 2050 * @arg @ref LL_MDMA_CHANNEL_8 2051 * @arg @ref LL_MDMA_CHANNEL_9 2052 * @arg @ref LL_MDMA_CHANNEL_10 2053 * @arg @ref LL_MDMA_CHANNEL_11 2054 * @arg @ref LL_MDMA_CHANNEL_12 2055 * @arg @ref LL_MDMA_CHANNEL_13 2056 * @arg @ref LL_MDMA_CHANNEL_14 2057 * @arg @ref LL_MDMA_CHANNEL_15 2058 * @retval Returned value can be one of the following values: 2059 * @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE 2060 * @arg @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD 2061 * @arg @ref LL_MDMA_SRC_DATA_SIZE_WORD 2062 * @arg @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD 2063 * @retval None 2064 */ 2065 __STATIC_INLINE uint32_t LL_MDMA_GetSourceDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 2066 { 2067 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2068 2069 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SSIZE)); 2070 } 2071 2072 /** 2073 * @brief Set Destination Increment Mode. 2074 * @rmtoll CTCR DINC LL_MDMA_SetDestinationIncMode 2075 * @param MDMAx MDMAx Instance 2076 * @param Channel This parameter can be one of the following values: 2077 * @arg @ref LL_MDMA_CHANNEL_0 2078 * @arg @ref LL_MDMA_CHANNEL_1 2079 * @arg @ref LL_MDMA_CHANNEL_2 2080 * @arg @ref LL_MDMA_CHANNEL_3 2081 * @arg @ref LL_MDMA_CHANNEL_4 2082 * @arg @ref LL_MDMA_CHANNEL_5 2083 * @arg @ref LL_MDMA_CHANNEL_6 2084 * @arg @ref LL_MDMA_CHANNEL_7 2085 * @arg @ref LL_MDMA_CHANNEL_8 2086 * @arg @ref LL_MDMA_CHANNEL_9 2087 * @arg @ref LL_MDMA_CHANNEL_10 2088 * @arg @ref LL_MDMA_CHANNEL_11 2089 * @arg @ref LL_MDMA_CHANNEL_12 2090 * @arg @ref LL_MDMA_CHANNEL_13 2091 * @arg @ref LL_MDMA_CHANNEL_14 2092 * @arg @ref LL_MDMA_CHANNEL_15 2093 * @param DestIncMode This parameter can be one of the following values: 2094 * @arg @ref LL_MDMA_DEST_FIXED 2095 * @arg @ref LL_MDMA_DEST_INCREMENT 2096 * @arg @ref LL_MDMA_DEST_DECREMENT 2097 * @retval None 2098 */ 2099 __STATIC_INLINE void LL_MDMA_SetDestinationIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestIncMode) 2100 { 2101 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2102 2103 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINC, DestIncMode); 2104 } 2105 2106 /** 2107 * @brief Get Destination Increment Mode. 2108 * @rmtoll CTCR DINC LL_MDMA_GetDestinationIncMode 2109 * @param MDMAx MDMAx Instance 2110 * @param Channel This parameter can be one of the following values: 2111 * @arg @ref LL_MDMA_CHANNEL_0 2112 * @arg @ref LL_MDMA_CHANNEL_1 2113 * @arg @ref LL_MDMA_CHANNEL_2 2114 * @arg @ref LL_MDMA_CHANNEL_3 2115 * @arg @ref LL_MDMA_CHANNEL_4 2116 * @arg @ref LL_MDMA_CHANNEL_5 2117 * @arg @ref LL_MDMA_CHANNEL_6 2118 * @arg @ref LL_MDMA_CHANNEL_7 2119 * @arg @ref LL_MDMA_CHANNEL_8 2120 * @arg @ref LL_MDMA_CHANNEL_9 2121 * @arg @ref LL_MDMA_CHANNEL_10 2122 * @arg @ref LL_MDMA_CHANNEL_11 2123 * @arg @ref LL_MDMA_CHANNEL_12 2124 * @arg @ref LL_MDMA_CHANNEL_13 2125 * @arg @ref LL_MDMA_CHANNEL_14 2126 * @arg @ref LL_MDMA_CHANNEL_15 2127 * @retval Returned value can be one of the following values: 2128 * @arg @ref LL_MDMA_DEST_FIXED 2129 * @arg @ref LL_MDMA_DEST_INCREMENT 2130 * @arg @ref LL_MDMA_DEST_DECREMENT 2131 * @retval None 2132 */ 2133 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 2134 { 2135 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2136 2137 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINC)); 2138 } 2139 2140 /** 2141 * @brief Set Source Increment Mode. 2142 * @rmtoll CTCR SINC LL_MDMA_SetSourceIncMode 2143 * @param MDMAx MDMAx Instance 2144 * @param Channel This parameter can be one of the following values: 2145 * @arg @ref LL_MDMA_CHANNEL_0 2146 * @arg @ref LL_MDMA_CHANNEL_1 2147 * @arg @ref LL_MDMA_CHANNEL_2 2148 * @arg @ref LL_MDMA_CHANNEL_3 2149 * @arg @ref LL_MDMA_CHANNEL_4 2150 * @arg @ref LL_MDMA_CHANNEL_5 2151 * @arg @ref LL_MDMA_CHANNEL_6 2152 * @arg @ref LL_MDMA_CHANNEL_7 2153 * @arg @ref LL_MDMA_CHANNEL_8 2154 * @arg @ref LL_MDMA_CHANNEL_9 2155 * @arg @ref LL_MDMA_CHANNEL_10 2156 * @arg @ref LL_MDMA_CHANNEL_11 2157 * @arg @ref LL_MDMA_CHANNEL_12 2158 * @arg @ref LL_MDMA_CHANNEL_13 2159 * @arg @ref LL_MDMA_CHANNEL_14 2160 * @arg @ref LL_MDMA_CHANNEL_15 2161 * @param SrcIncMode This parameter can be one of the following values: 2162 * @arg @ref LL_MDMA_SRC_FIXED 2163 * @arg @ref LL_MDMA_SRC_INCREMENT 2164 * @arg @ref LL_MDMA_SRC_DECREMENT 2165 * @retval None 2166 */ 2167 __STATIC_INLINE void LL_MDMA_SetSourceIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcIncMode) 2168 { 2169 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2170 2171 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINC, SrcIncMode); 2172 } 2173 2174 /** 2175 * @brief Get Source Increment Mode. 2176 * @rmtoll CTCR SINC LL_MDMA_GetSourceIncMode 2177 * @param MDMAx MDMAx Instance 2178 * @param Channel This parameter can be one of the following values: 2179 * @arg @ref LL_MDMA_CHANNEL_0 2180 * @arg @ref LL_MDMA_CHANNEL_1 2181 * @arg @ref LL_MDMA_CHANNEL_2 2182 * @arg @ref LL_MDMA_CHANNEL_3 2183 * @arg @ref LL_MDMA_CHANNEL_4 2184 * @arg @ref LL_MDMA_CHANNEL_5 2185 * @arg @ref LL_MDMA_CHANNEL_6 2186 * @arg @ref LL_MDMA_CHANNEL_7 2187 * @arg @ref LL_MDMA_CHANNEL_8 2188 * @arg @ref LL_MDMA_CHANNEL_9 2189 * @arg @ref LL_MDMA_CHANNEL_10 2190 * @arg @ref LL_MDMA_CHANNEL_11 2191 * @arg @ref LL_MDMA_CHANNEL_12 2192 * @arg @ref LL_MDMA_CHANNEL_13 2193 * @arg @ref LL_MDMA_CHANNEL_14 2194 * @arg @ref LL_MDMA_CHANNEL_15 2195 * @retval Returned value can be one of the following values: 2196 * @arg @ref LL_MDMA_SRC_FIXED 2197 * @arg @ref LL_MDMA_SRC_INCREMENT 2198 * @arg @ref LL_MDMA_SRC_DECREMENT 2199 * @retval None 2200 */ 2201 __STATIC_INLINE uint32_t LL_MDMA_GetSourceIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 2202 { 2203 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2204 2205 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINC)); 2206 } 2207 2208 /** 2209 * @brief Configure MDMA Block number of data and repeat Count. 2210 * @rmtoll CBNDTR BRC LL_MDMA_ConfigBlkCounters\n 2211 * @rmtoll CBNDTR BNDT LL_MDMA_ConfigBlkCounters 2212 * @param MDMAx MDMAx Instance 2213 * @param Channel This parameter can be one of the following values: 2214 * @arg @ref LL_MDMA_CHANNEL_0 2215 * @arg @ref LL_MDMA_CHANNEL_1 2216 * @arg @ref LL_MDMA_CHANNEL_2 2217 * @arg @ref LL_MDMA_CHANNEL_3 2218 * @arg @ref LL_MDMA_CHANNEL_4 2219 * @arg @ref LL_MDMA_CHANNEL_5 2220 * @arg @ref LL_MDMA_CHANNEL_6 2221 * @arg @ref LL_MDMA_CHANNEL_7 2222 * @arg @ref LL_MDMA_CHANNEL_8 2223 * @arg @ref LL_MDMA_CHANNEL_9 2224 * @arg @ref LL_MDMA_CHANNEL_10 2225 * @arg @ref LL_MDMA_CHANNEL_11 2226 * @arg @ref LL_MDMA_CHANNEL_12 2227 * @arg @ref LL_MDMA_CHANNEL_13 2228 * @arg @ref LL_MDMA_CHANNEL_14 2229 * @arg @ref LL_MDMA_CHANNEL_15 2230 * @param BlockRepeatCount Between 0 to 0x00000FFF 2231 * @param BlkDataLength Between 0 to 0x00010000 2232 * @retval None 2233 */ 2234 __STATIC_INLINE void LL_MDMA_ConfigBlkCounters(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlockRepeatCount, uint32_t BlkDataLength) 2235 { 2236 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2237 2238 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, 2239 MDMA_CBNDTR_BRC | MDMA_CBNDTR_BNDT, 2240 ((BlockRepeatCount << MDMA_CBNDTR_BRC_Pos) & MDMA_CBNDTR_BRC_Msk) | (BlkDataLength & MDMA_CBNDTR_BNDT_Msk)); 2241 } 2242 2243 /** 2244 * @brief Set Block Number of data bytes to transfer. 2245 * @rmtoll CBNDTR BNDT LL_MDMA_SetBlkDataLength 2246 * @param MDMAx MDMAx Instance 2247 * @param Channel This parameter can be one of the following values: 2248 * @arg @ref LL_MDMA_CHANNEL_0 2249 * @arg @ref LL_MDMA_CHANNEL_1 2250 * @arg @ref LL_MDMA_CHANNEL_2 2251 * @arg @ref LL_MDMA_CHANNEL_3 2252 * @arg @ref LL_MDMA_CHANNEL_4 2253 * @arg @ref LL_MDMA_CHANNEL_5 2254 * @arg @ref LL_MDMA_CHANNEL_6 2255 * @arg @ref LL_MDMA_CHANNEL_7 2256 * @arg @ref LL_MDMA_CHANNEL_8 2257 * @arg @ref LL_MDMA_CHANNEL_9 2258 * @arg @ref LL_MDMA_CHANNEL_10 2259 * @arg @ref LL_MDMA_CHANNEL_11 2260 * @arg @ref LL_MDMA_CHANNEL_12 2261 * @arg @ref LL_MDMA_CHANNEL_13 2262 * @arg @ref LL_MDMA_CHANNEL_14 2263 * @arg @ref LL_MDMA_CHANNEL_15 2264 * @param BlkDataLength Between 0 to 0x00010000 2265 * @retval None 2266 */ 2267 __STATIC_INLINE void LL_MDMA_SetBlkDataLength(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlkDataLength) 2268 { 2269 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2270 2271 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BNDT, (BlkDataLength & MDMA_CBNDTR_BNDT_Msk)); 2272 } 2273 2274 /** 2275 * @brief Get Block Number of data bytes to transfer. 2276 * @rmtoll CBNDTR BNDT LL_MDMA_GetBlkDataLength 2277 * @param MDMAx MDMAx Instance 2278 * @param Channel This parameter can be one of the following values: 2279 * @arg @ref LL_MDMA_CHANNEL_0 2280 * @arg @ref LL_MDMA_CHANNEL_1 2281 * @arg @ref LL_MDMA_CHANNEL_2 2282 * @arg @ref LL_MDMA_CHANNEL_3 2283 * @arg @ref LL_MDMA_CHANNEL_4 2284 * @arg @ref LL_MDMA_CHANNEL_5 2285 * @arg @ref LL_MDMA_CHANNEL_6 2286 * @arg @ref LL_MDMA_CHANNEL_7 2287 * @arg @ref LL_MDMA_CHANNEL_8 2288 * @arg @ref LL_MDMA_CHANNEL_9 2289 * @arg @ref LL_MDMA_CHANNEL_10 2290 * @arg @ref LL_MDMA_CHANNEL_11 2291 * @arg @ref LL_MDMA_CHANNEL_12 2292 * @arg @ref LL_MDMA_CHANNEL_13 2293 * @arg @ref LL_MDMA_CHANNEL_14 2294 * @arg @ref LL_MDMA_CHANNEL_15 2295 * @retval Between 0 to 0x00010000 2296 * @retval None 2297 */ 2298 __STATIC_INLINE uint32_t LL_MDMA_GetBlkDataLength(MDMA_TypeDef *MDMAx, uint32_t Channel) 2299 { 2300 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2301 2302 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BNDT)); 2303 } 2304 2305 /** 2306 * @brief Set Block Repeat Count. 2307 * @rmtoll CBNDTR BRC LL_MDMA_SetBlkRepeatCount 2308 * @param MDMAx MDMAx Instance 2309 * @param Channel This parameter can be one of the following values: 2310 * @arg @ref LL_MDMA_CHANNEL_0 2311 * @arg @ref LL_MDMA_CHANNEL_1 2312 * @arg @ref LL_MDMA_CHANNEL_2 2313 * @arg @ref LL_MDMA_CHANNEL_3 2314 * @arg @ref LL_MDMA_CHANNEL_4 2315 * @arg @ref LL_MDMA_CHANNEL_5 2316 * @arg @ref LL_MDMA_CHANNEL_6 2317 * @arg @ref LL_MDMA_CHANNEL_7 2318 * @arg @ref LL_MDMA_CHANNEL_8 2319 * @arg @ref LL_MDMA_CHANNEL_9 2320 * @arg @ref LL_MDMA_CHANNEL_10 2321 * @arg @ref LL_MDMA_CHANNEL_11 2322 * @arg @ref LL_MDMA_CHANNEL_12 2323 * @arg @ref LL_MDMA_CHANNEL_13 2324 * @arg @ref LL_MDMA_CHANNEL_14 2325 * @arg @ref LL_MDMA_CHANNEL_15 2326 * @param BlockRepeatCount Between 0 to 0x00000FFF 2327 * @retval None 2328 */ 2329 __STATIC_INLINE void LL_MDMA_SetBlkRepeatCount(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlockRepeatCount) 2330 { 2331 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2332 2333 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRC, 2334 (BlockRepeatCount << MDMA_CBNDTR_BRC_Pos) & MDMA_CBNDTR_BRC_Msk); 2335 } 2336 2337 /** 2338 * @brief Get Block Repeat Count. 2339 * @rmtoll CBNDTR BRC LL_MDMA_GetBlkRepeatCount 2340 * @param MDMAx MDMAx Instance 2341 * @param Channel This parameter can be one of the following values: 2342 * @arg @ref LL_MDMA_CHANNEL_0 2343 * @arg @ref LL_MDMA_CHANNEL_1 2344 * @arg @ref LL_MDMA_CHANNEL_2 2345 * @arg @ref LL_MDMA_CHANNEL_3 2346 * @arg @ref LL_MDMA_CHANNEL_4 2347 * @arg @ref LL_MDMA_CHANNEL_5 2348 * @arg @ref LL_MDMA_CHANNEL_6 2349 * @arg @ref LL_MDMA_CHANNEL_7 2350 * @arg @ref LL_MDMA_CHANNEL_8 2351 * @arg @ref LL_MDMA_CHANNEL_9 2352 * @arg @ref LL_MDMA_CHANNEL_10 2353 * @arg @ref LL_MDMA_CHANNEL_11 2354 * @arg @ref LL_MDMA_CHANNEL_12 2355 * @arg @ref LL_MDMA_CHANNEL_13 2356 * @arg @ref LL_MDMA_CHANNEL_14 2357 * @arg @ref LL_MDMA_CHANNEL_15 2358 * @retval Between 0 to 0x00000FFF 2359 * @retval None 2360 */ 2361 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatCount(MDMA_TypeDef *MDMAx, uint32_t Channel) 2362 { 2363 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2364 2365 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRC) >> MDMA_CBNDTR_BRC_Pos); 2366 } 2367 2368 /** 2369 * @brief Configure MDMA block repeat address update mode. 2370 * @rmtoll CBNDTR BRDUM LL_MDMA_ConfigBlkRepeatAddrUpdate\n 2371 * @rmtoll CBNDTR BRSUM LL_MDMA_ConfigBlkRepeatAddrUpdate 2372 * @param MDMAx MDMAx Instance 2373 * @param Channel This parameter can be one of the following values: 2374 * @arg @ref LL_MDMA_CHANNEL_0 2375 * @arg @ref LL_MDMA_CHANNEL_1 2376 * @arg @ref LL_MDMA_CHANNEL_2 2377 * @arg @ref LL_MDMA_CHANNEL_3 2378 * @arg @ref LL_MDMA_CHANNEL_4 2379 * @arg @ref LL_MDMA_CHANNEL_5 2380 * @arg @ref LL_MDMA_CHANNEL_6 2381 * @arg @ref LL_MDMA_CHANNEL_7 2382 * @arg @ref LL_MDMA_CHANNEL_8 2383 * @arg @ref LL_MDMA_CHANNEL_9 2384 * @arg @ref LL_MDMA_CHANNEL_10 2385 * @arg @ref LL_MDMA_CHANNEL_11 2386 * @arg @ref LL_MDMA_CHANNEL_12 2387 * @arg @ref LL_MDMA_CHANNEL_13 2388 * @arg @ref LL_MDMA_CHANNEL_14 2389 * @arg @ref LL_MDMA_CHANNEL_15 2390 * @param Configuration This parameter must be a combination of all the following values: 2391 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT or @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT 2392 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT or @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT 2393 * @retval None 2394 */ 2395 __STATIC_INLINE void LL_MDMA_ConfigBlkRepeatAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration) 2396 { 2397 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2398 2399 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, 2400 MDMA_CBNDTR_BRDUM | MDMA_CBNDTR_BRSUM, 2401 Configuration); 2402 } 2403 2404 /** 2405 * @brief Set Block Repeat Destination address Update Mode. 2406 * @rmtoll CBNDTR BRDUM LL_MDMA_SetBlkRepeatDestAddrUpdate 2407 * @param MDMAx MDMAx Instance 2408 * @param Channel This parameter can be one of the following values: 2409 * @arg @ref LL_MDMA_CHANNEL_0 2410 * @arg @ref LL_MDMA_CHANNEL_1 2411 * @arg @ref LL_MDMA_CHANNEL_2 2412 * @arg @ref LL_MDMA_CHANNEL_3 2413 * @arg @ref LL_MDMA_CHANNEL_4 2414 * @arg @ref LL_MDMA_CHANNEL_5 2415 * @arg @ref LL_MDMA_CHANNEL_6 2416 * @arg @ref LL_MDMA_CHANNEL_7 2417 * @arg @ref LL_MDMA_CHANNEL_8 2418 * @arg @ref LL_MDMA_CHANNEL_9 2419 * @arg @ref LL_MDMA_CHANNEL_10 2420 * @arg @ref LL_MDMA_CHANNEL_11 2421 * @arg @ref LL_MDMA_CHANNEL_12 2422 * @arg @ref LL_MDMA_CHANNEL_13 2423 * @arg @ref LL_MDMA_CHANNEL_14 2424 * @arg @ref LL_MDMA_CHANNEL_15 2425 * @param DestAdrUpdateMode This parameter can be one of the following values: 2426 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT 2427 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT 2428 * @retval None 2429 */ 2430 __STATIC_INLINE void LL_MDMA_SetBlkRepeatDestAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAdrUpdateMode) 2431 { 2432 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2433 2434 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRDUM, DestAdrUpdateMode); 2435 } 2436 2437 /** 2438 * @brief Get Block Repeat Destination address Update Mode. 2439 * @rmtoll CBNDTR BRDUM LL_MDMA_GetBlkRepeatDestAddrUpdate 2440 * @param MDMAx MDMAx Instance 2441 * @param Channel This parameter can be one of the following values: 2442 * @arg @ref LL_MDMA_CHANNEL_0 2443 * @arg @ref LL_MDMA_CHANNEL_1 2444 * @arg @ref LL_MDMA_CHANNEL_2 2445 * @arg @ref LL_MDMA_CHANNEL_3 2446 * @arg @ref LL_MDMA_CHANNEL_4 2447 * @arg @ref LL_MDMA_CHANNEL_5 2448 * @arg @ref LL_MDMA_CHANNEL_6 2449 * @arg @ref LL_MDMA_CHANNEL_7 2450 * @arg @ref LL_MDMA_CHANNEL_8 2451 * @arg @ref LL_MDMA_CHANNEL_9 2452 * @arg @ref LL_MDMA_CHANNEL_10 2453 * @arg @ref LL_MDMA_CHANNEL_11 2454 * @arg @ref LL_MDMA_CHANNEL_12 2455 * @arg @ref LL_MDMA_CHANNEL_13 2456 * @arg @ref LL_MDMA_CHANNEL_14 2457 * @arg @ref LL_MDMA_CHANNEL_15 2458 * @retval Returned value can be one of the following values: 2459 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT 2460 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT 2461 * @retval None 2462 */ 2463 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatDestAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel) 2464 { 2465 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2466 2467 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRDUM)); 2468 } 2469 2470 /** 2471 * @brief Set Block Repeat Source address Update Mode. 2472 * @rmtoll CBNDTR BRSUM LL_MDMA_SetBlkRepeatSrcAddrUpdate 2473 * @param MDMAx MDMAx Instance 2474 * @param Channel This parameter can be one of the following values: 2475 * @arg @ref LL_MDMA_CHANNEL_0 2476 * @arg @ref LL_MDMA_CHANNEL_1 2477 * @arg @ref LL_MDMA_CHANNEL_2 2478 * @arg @ref LL_MDMA_CHANNEL_3 2479 * @arg @ref LL_MDMA_CHANNEL_4 2480 * @arg @ref LL_MDMA_CHANNEL_5 2481 * @arg @ref LL_MDMA_CHANNEL_6 2482 * @arg @ref LL_MDMA_CHANNEL_7 2483 * @arg @ref LL_MDMA_CHANNEL_8 2484 * @arg @ref LL_MDMA_CHANNEL_9 2485 * @arg @ref LL_MDMA_CHANNEL_10 2486 * @arg @ref LL_MDMA_CHANNEL_11 2487 * @arg @ref LL_MDMA_CHANNEL_12 2488 * @arg @ref LL_MDMA_CHANNEL_13 2489 * @arg @ref LL_MDMA_CHANNEL_14 2490 * @arg @ref LL_MDMA_CHANNEL_15 2491 * @param SrcAdrUpdateMode This parameter can be one of the following values: 2492 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT 2493 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT 2494 * @retval None 2495 */ 2496 __STATIC_INLINE void LL_MDMA_SetBlkRepeatSrcAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAdrUpdateMode) 2497 { 2498 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2499 2500 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRSUM, SrcAdrUpdateMode); 2501 } 2502 2503 /** 2504 * @brief Get Block Repeat Source address Update Mode. 2505 * @rmtoll CBNDTR BRSUM LL_MDMA_GetBlkRepeatSrcAddrUpdate 2506 * @param MDMAx MDMAx Instance 2507 * @param Channel This parameter can be one of the following values: 2508 * @arg @ref LL_MDMA_CHANNEL_0 2509 * @arg @ref LL_MDMA_CHANNEL_1 2510 * @arg @ref LL_MDMA_CHANNEL_2 2511 * @arg @ref LL_MDMA_CHANNEL_3 2512 * @arg @ref LL_MDMA_CHANNEL_4 2513 * @arg @ref LL_MDMA_CHANNEL_5 2514 * @arg @ref LL_MDMA_CHANNEL_6 2515 * @arg @ref LL_MDMA_CHANNEL_7 2516 * @arg @ref LL_MDMA_CHANNEL_8 2517 * @arg @ref LL_MDMA_CHANNEL_9 2518 * @arg @ref LL_MDMA_CHANNEL_10 2519 * @arg @ref LL_MDMA_CHANNEL_11 2520 * @arg @ref LL_MDMA_CHANNEL_12 2521 * @arg @ref LL_MDMA_CHANNEL_13 2522 * @arg @ref LL_MDMA_CHANNEL_14 2523 * @arg @ref LL_MDMA_CHANNEL_15 2524 * @retval Returned value can be one of the following values: 2525 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT 2526 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT 2527 * @retval None 2528 */ 2529 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatSrcAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel) 2530 { 2531 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2532 2533 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRSUM)); 2534 } 2535 2536 /** 2537 * @brief Configure the Source and Destination addresses. 2538 * @note This API must not be called when the MDMA channel is enabled. 2539 * @rmtoll CSAR SAR LL_MDMA_ConfigAddresses\n 2540 * @rmtoll CDAR DAR LL_MDMA_ConfigAddresses 2541 * @param MDMAx MDMAx Instance 2542 * @param Channel This parameter can be one of the following values: 2543 * @arg @ref LL_MDMA_CHANNEL_0 2544 * @arg @ref LL_MDMA_CHANNEL_1 2545 * @arg @ref LL_MDMA_CHANNEL_2 2546 * @arg @ref LL_MDMA_CHANNEL_3 2547 * @arg @ref LL_MDMA_CHANNEL_4 2548 * @arg @ref LL_MDMA_CHANNEL_5 2549 * @arg @ref LL_MDMA_CHANNEL_6 2550 * @arg @ref LL_MDMA_CHANNEL_7 2551 * @arg @ref LL_MDMA_CHANNEL_8 2552 * @arg @ref LL_MDMA_CHANNEL_9 2553 * @arg @ref LL_MDMA_CHANNEL_10 2554 * @arg @ref LL_MDMA_CHANNEL_11 2555 * @arg @ref LL_MDMA_CHANNEL_12 2556 * @arg @ref LL_MDMA_CHANNEL_13 2557 * @arg @ref LL_MDMA_CHANNEL_14 2558 * @arg @ref LL_MDMA_CHANNEL_15 2559 * @param SrcAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF 2560 * @param DstAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF 2561 * @retval None 2562 */ 2563 __STATIC_INLINE void LL_MDMA_ConfigAddresses(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAddress, uint32_t DstAddress) 2564 { 2565 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2566 2567 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR, SrcAddress); 2568 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR, DstAddress); 2569 } 2570 /** 2571 * @brief Set transfer Source address. 2572 * @rmtoll CSAR SAR LL_MDMA_SetSourceAddress 2573 * @param MDMAx MDMAx Instance 2574 * @param Channel This parameter can be one of the following values: 2575 * @arg @ref LL_MDMA_CHANNEL_0 2576 * @arg @ref LL_MDMA_CHANNEL_1 2577 * @arg @ref LL_MDMA_CHANNEL_2 2578 * @arg @ref LL_MDMA_CHANNEL_3 2579 * @arg @ref LL_MDMA_CHANNEL_4 2580 * @arg @ref LL_MDMA_CHANNEL_5 2581 * @arg @ref LL_MDMA_CHANNEL_6 2582 * @arg @ref LL_MDMA_CHANNEL_7 2583 * @arg @ref LL_MDMA_CHANNEL_8 2584 * @arg @ref LL_MDMA_CHANNEL_9 2585 * @arg @ref LL_MDMA_CHANNEL_10 2586 * @arg @ref LL_MDMA_CHANNEL_11 2587 * @arg @ref LL_MDMA_CHANNEL_12 2588 * @arg @ref LL_MDMA_CHANNEL_13 2589 * @arg @ref LL_MDMA_CHANNEL_14 2590 * @arg @ref LL_MDMA_CHANNEL_15 2591 * @param SrcAddress Between 0 to 0xFFFFFFFF 2592 * @retval None 2593 */ 2594 __STATIC_INLINE void LL_MDMA_SetSourceAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAddress) 2595 { 2596 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2597 2598 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR, SrcAddress); 2599 } 2600 2601 /** 2602 * @brief Get transfer Source address. 2603 * @rmtoll CSAR SAR LL_MDMA_GetSourceAddress 2604 * @param MDMAx MDMAx Instance 2605 * @param Channel This parameter can be one of the following values: 2606 * @arg @ref LL_MDMA_CHANNEL_0 2607 * @arg @ref LL_MDMA_CHANNEL_1 2608 * @arg @ref LL_MDMA_CHANNEL_2 2609 * @arg @ref LL_MDMA_CHANNEL_3 2610 * @arg @ref LL_MDMA_CHANNEL_4 2611 * @arg @ref LL_MDMA_CHANNEL_5 2612 * @arg @ref LL_MDMA_CHANNEL_6 2613 * @arg @ref LL_MDMA_CHANNEL_7 2614 * @arg @ref LL_MDMA_CHANNEL_8 2615 * @arg @ref LL_MDMA_CHANNEL_9 2616 * @arg @ref LL_MDMA_CHANNEL_10 2617 * @arg @ref LL_MDMA_CHANNEL_11 2618 * @arg @ref LL_MDMA_CHANNEL_12 2619 * @arg @ref LL_MDMA_CHANNEL_13 2620 * @arg @ref LL_MDMA_CHANNEL_14 2621 * @arg @ref LL_MDMA_CHANNEL_15 2622 * @retval Between 0 to 0xFFFFFFFF 2623 * @retval None 2624 */ 2625 __STATIC_INLINE uint32_t LL_MDMA_GetSourceAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 2626 { 2627 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2628 2629 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR)); 2630 } 2631 2632 /** 2633 * @brief Set transfer Destination address. 2634 * @rmtoll CDAR DAR LL_MDMA_SetDestinationAddress 2635 * @param MDMAx MDMAx Instance 2636 * @param Channel This parameter can be one of the following values: 2637 * @arg @ref LL_MDMA_CHANNEL_0 2638 * @arg @ref LL_MDMA_CHANNEL_1 2639 * @arg @ref LL_MDMA_CHANNEL_2 2640 * @arg @ref LL_MDMA_CHANNEL_3 2641 * @arg @ref LL_MDMA_CHANNEL_4 2642 * @arg @ref LL_MDMA_CHANNEL_5 2643 * @arg @ref LL_MDMA_CHANNEL_6 2644 * @arg @ref LL_MDMA_CHANNEL_7 2645 * @arg @ref LL_MDMA_CHANNEL_8 2646 * @arg @ref LL_MDMA_CHANNEL_9 2647 * @arg @ref LL_MDMA_CHANNEL_10 2648 * @arg @ref LL_MDMA_CHANNEL_11 2649 * @arg @ref LL_MDMA_CHANNEL_12 2650 * @arg @ref LL_MDMA_CHANNEL_13 2651 * @arg @ref LL_MDMA_CHANNEL_14 2652 * @arg @ref LL_MDMA_CHANNEL_15 2653 * @param DestAddress Between 0 to 0xFFFFFFFF 2654 * @retval None 2655 */ 2656 __STATIC_INLINE void LL_MDMA_SetDestinationAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAddress) 2657 { 2658 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2659 2660 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR, DestAddress); 2661 } 2662 2663 /** 2664 * @brief Get transfer Destination address. 2665 * @rmtoll CDAR DAR LL_MDMA_GetDestinationAddress 2666 * @param MDMAx MDMAx Instance 2667 * @param Channel This parameter can be one of the following values: 2668 * @arg @ref LL_MDMA_CHANNEL_0 2669 * @arg @ref LL_MDMA_CHANNEL_1 2670 * @arg @ref LL_MDMA_CHANNEL_2 2671 * @arg @ref LL_MDMA_CHANNEL_3 2672 * @arg @ref LL_MDMA_CHANNEL_4 2673 * @arg @ref LL_MDMA_CHANNEL_5 2674 * @arg @ref LL_MDMA_CHANNEL_6 2675 * @arg @ref LL_MDMA_CHANNEL_7 2676 * @arg @ref LL_MDMA_CHANNEL_8 2677 * @arg @ref LL_MDMA_CHANNEL_9 2678 * @arg @ref LL_MDMA_CHANNEL_10 2679 * @arg @ref LL_MDMA_CHANNEL_11 2680 * @arg @ref LL_MDMA_CHANNEL_12 2681 * @arg @ref LL_MDMA_CHANNEL_13 2682 * @arg @ref LL_MDMA_CHANNEL_14 2683 * @arg @ref LL_MDMA_CHANNEL_15 2684 * @retval Between 0 to 0xFFFFFFFF 2685 * @retval None 2686 */ 2687 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 2688 { 2689 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2690 2691 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR)); 2692 } 2693 2694 /** 2695 * @brief Configure the Source and Destination Block repeat addresses Update value. 2696 * @note This API must not be called when the MDMA channel is enabled. 2697 * @rmtoll CBRUR DUV LL_MDMA_ConfigBlkRptAddrUpdateValue\n 2698 * @rmtoll CBRUR SUV LL_MDMA_ConfigBlkRptAddrUpdateValue 2699 * @param MDMAx MDMAx Instance 2700 * @param Channel This parameter can be one of the following values: 2701 * @arg @ref LL_MDMA_CHANNEL_0 2702 * @arg @ref LL_MDMA_CHANNEL_1 2703 * @arg @ref LL_MDMA_CHANNEL_2 2704 * @arg @ref LL_MDMA_CHANNEL_3 2705 * @arg @ref LL_MDMA_CHANNEL_4 2706 * @arg @ref LL_MDMA_CHANNEL_5 2707 * @arg @ref LL_MDMA_CHANNEL_6 2708 * @arg @ref LL_MDMA_CHANNEL_7 2709 * @arg @ref LL_MDMA_CHANNEL_8 2710 * @arg @ref LL_MDMA_CHANNEL_9 2711 * @arg @ref LL_MDMA_CHANNEL_10 2712 * @arg @ref LL_MDMA_CHANNEL_11 2713 * @arg @ref LL_MDMA_CHANNEL_12 2714 * @arg @ref LL_MDMA_CHANNEL_13 2715 * @arg @ref LL_MDMA_CHANNEL_14 2716 * @arg @ref LL_MDMA_CHANNEL_15 2717 * @param SrctAdrUpdateValue Min_Data = 0 and Max_Data = 0x0000FFFF 2718 * @param DestAdrUpdateValue Between Min_Data = 0 and Max_Data = 0x0000FFFF 2719 * @retval None 2720 */ 2721 __STATIC_INLINE void LL_MDMA_ConfigBlkRptAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrctAdrUpdateValue, uint32_t DestAdrUpdateValue) 2722 { 2723 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2724 2725 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, 2726 (SrctAdrUpdateValue & MDMA_CBRUR_SUV_Msk) | ((DestAdrUpdateValue << MDMA_CBRUR_DUV_Pos) & MDMA_CBRUR_DUV_Msk)); 2727 } 2728 2729 /** 2730 * @brief Set transfer Destination address Update Value. 2731 * @rmtoll CBRUR DUV LL_MDMA_SetBlkRptDestAddrUpdateValue 2732 * @param MDMAx MDMAx Instance 2733 * @param Channel This parameter can be one of the following values: 2734 * @arg @ref LL_MDMA_CHANNEL_0 2735 * @arg @ref LL_MDMA_CHANNEL_1 2736 * @arg @ref LL_MDMA_CHANNEL_2 2737 * @arg @ref LL_MDMA_CHANNEL_3 2738 * @arg @ref LL_MDMA_CHANNEL_4 2739 * @arg @ref LL_MDMA_CHANNEL_5 2740 * @arg @ref LL_MDMA_CHANNEL_6 2741 * @arg @ref LL_MDMA_CHANNEL_7 2742 * @arg @ref LL_MDMA_CHANNEL_8 2743 * @arg @ref LL_MDMA_CHANNEL_9 2744 * @arg @ref LL_MDMA_CHANNEL_10 2745 * @arg @ref LL_MDMA_CHANNEL_11 2746 * @arg @ref LL_MDMA_CHANNEL_12 2747 * @arg @ref LL_MDMA_CHANNEL_13 2748 * @arg @ref LL_MDMA_CHANNEL_14 2749 * @arg @ref LL_MDMA_CHANNEL_15 2750 * @param DestAdrUpdateValue Between 0 to 0x0000FFFF 2751 * @retval None 2752 */ 2753 __STATIC_INLINE void LL_MDMA_SetBlkRptDestAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAdrUpdateValue) 2754 { 2755 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2756 2757 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_DUV, 2758 ((DestAdrUpdateValue << MDMA_CBRUR_DUV_Pos) & MDMA_CBRUR_DUV_Msk)); 2759 } 2760 2761 /** 2762 * @brief Get transfer Destination address Update Value. 2763 * @rmtoll CBRUR DUV LL_MDMA_GetBlkRptDestAddrUpdateValue 2764 * @param MDMAx MDMAx Instance 2765 * @param Channel This parameter can be one of the following values: 2766 * @arg @ref LL_MDMA_CHANNEL_0 2767 * @arg @ref LL_MDMA_CHANNEL_1 2768 * @arg @ref LL_MDMA_CHANNEL_2 2769 * @arg @ref LL_MDMA_CHANNEL_3 2770 * @arg @ref LL_MDMA_CHANNEL_4 2771 * @arg @ref LL_MDMA_CHANNEL_5 2772 * @arg @ref LL_MDMA_CHANNEL_6 2773 * @arg @ref LL_MDMA_CHANNEL_7 2774 * @arg @ref LL_MDMA_CHANNEL_8 2775 * @arg @ref LL_MDMA_CHANNEL_9 2776 * @arg @ref LL_MDMA_CHANNEL_10 2777 * @arg @ref LL_MDMA_CHANNEL_11 2778 * @arg @ref LL_MDMA_CHANNEL_12 2779 * @arg @ref LL_MDMA_CHANNEL_13 2780 * @arg @ref LL_MDMA_CHANNEL_14 2781 * @arg @ref LL_MDMA_CHANNEL_15 2782 * @retval Between 0 to 0x0000FFFF 2783 * @retval None 2784 */ 2785 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRptDestAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel) 2786 { 2787 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2788 2789 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_DUV) >> MDMA_CBRUR_DUV_Pos); 2790 } 2791 2792 /** 2793 * @brief Set transfer Source address Update Value. 2794 * @rmtoll CBRUR SUV LL_MDMA_SetBlkRptSrcAddrUpdateValue 2795 * @param MDMAx MDMAx Instance 2796 * @param Channel This parameter can be one of the following values: 2797 * @arg @ref LL_MDMA_CHANNEL_0 2798 * @arg @ref LL_MDMA_CHANNEL_1 2799 * @arg @ref LL_MDMA_CHANNEL_2 2800 * @arg @ref LL_MDMA_CHANNEL_3 2801 * @arg @ref LL_MDMA_CHANNEL_4 2802 * @arg @ref LL_MDMA_CHANNEL_5 2803 * @arg @ref LL_MDMA_CHANNEL_6 2804 * @arg @ref LL_MDMA_CHANNEL_7 2805 * @arg @ref LL_MDMA_CHANNEL_8 2806 * @arg @ref LL_MDMA_CHANNEL_9 2807 * @arg @ref LL_MDMA_CHANNEL_10 2808 * @arg @ref LL_MDMA_CHANNEL_11 2809 * @arg @ref LL_MDMA_CHANNEL_12 2810 * @arg @ref LL_MDMA_CHANNEL_13 2811 * @arg @ref LL_MDMA_CHANNEL_14 2812 * @arg @ref LL_MDMA_CHANNEL_15 2813 * @param SrcAdrUpdateValue Between 0 to 0x0000FFFF 2814 * @retval None 2815 */ 2816 __STATIC_INLINE void LL_MDMA_SetBlkRptSrcAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAdrUpdateValue) 2817 { 2818 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2819 2820 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_SUV, SrcAdrUpdateValue); 2821 } 2822 2823 /** 2824 * @brief Get transfer Source address Update Value. 2825 * @rmtoll CBRUR SUV LL_MDMA_GetBlkRptSrcAddrUpdateValue 2826 * @param MDMAx MDMAx Instance 2827 * @param Channel This parameter can be one of the following values: 2828 * @arg @ref LL_MDMA_CHANNEL_0 2829 * @arg @ref LL_MDMA_CHANNEL_1 2830 * @arg @ref LL_MDMA_CHANNEL_2 2831 * @arg @ref LL_MDMA_CHANNEL_3 2832 * @arg @ref LL_MDMA_CHANNEL_4 2833 * @arg @ref LL_MDMA_CHANNEL_5 2834 * @arg @ref LL_MDMA_CHANNEL_6 2835 * @arg @ref LL_MDMA_CHANNEL_7 2836 * @arg @ref LL_MDMA_CHANNEL_8 2837 * @arg @ref LL_MDMA_CHANNEL_9 2838 * @arg @ref LL_MDMA_CHANNEL_10 2839 * @arg @ref LL_MDMA_CHANNEL_11 2840 * @arg @ref LL_MDMA_CHANNEL_12 2841 * @arg @ref LL_MDMA_CHANNEL_13 2842 * @arg @ref LL_MDMA_CHANNEL_14 2843 * @arg @ref LL_MDMA_CHANNEL_15 2844 * @retval Between 0 to 0x0000FFFF 2845 * @retval None 2846 */ 2847 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRptSrcAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel) 2848 { 2849 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2850 2851 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_SUV)); 2852 } 2853 2854 /** 2855 * @brief Set transfer Link Address. 2856 * @rmtoll CLAR LAR LL_MDMA_SetLinkAddress 2857 * @param MDMAx MDMAx Instance 2858 * @param Channel This parameter can be one of the following values: 2859 * @arg @ref LL_MDMA_CHANNEL_0 2860 * @arg @ref LL_MDMA_CHANNEL_1 2861 * @arg @ref LL_MDMA_CHANNEL_2 2862 * @arg @ref LL_MDMA_CHANNEL_3 2863 * @arg @ref LL_MDMA_CHANNEL_4 2864 * @arg @ref LL_MDMA_CHANNEL_5 2865 * @arg @ref LL_MDMA_CHANNEL_6 2866 * @arg @ref LL_MDMA_CHANNEL_7 2867 * @arg @ref LL_MDMA_CHANNEL_8 2868 * @arg @ref LL_MDMA_CHANNEL_9 2869 * @arg @ref LL_MDMA_CHANNEL_10 2870 * @arg @ref LL_MDMA_CHANNEL_11 2871 * @arg @ref LL_MDMA_CHANNEL_12 2872 * @arg @ref LL_MDMA_CHANNEL_13 2873 * @arg @ref LL_MDMA_CHANNEL_14 2874 * @arg @ref LL_MDMA_CHANNEL_15 2875 * @param LinkAddress Between 0 to 0xFFFFFFFF 2876 * @retval None 2877 */ 2878 __STATIC_INLINE void LL_MDMA_SetLinkAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t LinkAddress) 2879 { 2880 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2881 2882 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CLAR, LinkAddress); 2883 } 2884 2885 /** 2886 * @brief Get transfer Link Address. 2887 * @rmtoll CLAR LAR LL_MDMA_GetLinkAddress 2888 * @param MDMAx MDMAx Instance 2889 * @param Channel This parameter can be one of the following values: 2890 * @arg @ref LL_MDMA_CHANNEL_0 2891 * @arg @ref LL_MDMA_CHANNEL_1 2892 * @arg @ref LL_MDMA_CHANNEL_2 2893 * @arg @ref LL_MDMA_CHANNEL_3 2894 * @arg @ref LL_MDMA_CHANNEL_4 2895 * @arg @ref LL_MDMA_CHANNEL_5 2896 * @arg @ref LL_MDMA_CHANNEL_6 2897 * @arg @ref LL_MDMA_CHANNEL_7 2898 * @arg @ref LL_MDMA_CHANNEL_8 2899 * @arg @ref LL_MDMA_CHANNEL_9 2900 * @arg @ref LL_MDMA_CHANNEL_10 2901 * @arg @ref LL_MDMA_CHANNEL_11 2902 * @arg @ref LL_MDMA_CHANNEL_12 2903 * @arg @ref LL_MDMA_CHANNEL_13 2904 * @arg @ref LL_MDMA_CHANNEL_14 2905 * @arg @ref LL_MDMA_CHANNEL_15 2906 * @retval Between 0 to 0xFFFFFFFF 2907 * @retval None 2908 */ 2909 __STATIC_INLINE uint32_t LL_MDMA_GetLinkAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 2910 { 2911 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2912 2913 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CLAR)); 2914 } 2915 2916 /** 2917 * @brief Configure MDMA source and destination bus selection. 2918 * @rmtoll CTBR DBUS LL_MDMA_ConfigBusSelection\n 2919 * @rmtoll CTBR SBUS LL_MDMA_ConfigBusSelection 2920 * @param MDMAx MDMAx Instance 2921 * @param Channel This parameter can be one of the following values: 2922 * @arg @ref LL_MDMA_CHANNEL_0 2923 * @arg @ref LL_MDMA_CHANNEL_1 2924 * @arg @ref LL_MDMA_CHANNEL_2 2925 * @arg @ref LL_MDMA_CHANNEL_3 2926 * @arg @ref LL_MDMA_CHANNEL_4 2927 * @arg @ref LL_MDMA_CHANNEL_5 2928 * @arg @ref LL_MDMA_CHANNEL_6 2929 * @arg @ref LL_MDMA_CHANNEL_7 2930 * @arg @ref LL_MDMA_CHANNEL_8 2931 * @arg @ref LL_MDMA_CHANNEL_9 2932 * @arg @ref LL_MDMA_CHANNEL_10 2933 * @arg @ref LL_MDMA_CHANNEL_11 2934 * @arg @ref LL_MDMA_CHANNEL_12 2935 * @arg @ref LL_MDMA_CHANNEL_13 2936 * @arg @ref LL_MDMA_CHANNEL_14 2937 * @arg @ref LL_MDMA_CHANNEL_15 2938 * @param Configuration This parameter must be a combination of all the following values: 2939 * @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI or @ref LL_MDMA_DEST_BUS_AHB_TCM 2940 * @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI or @ref LL_MDMA_SRC_BUS_AHB_TCM 2941 * @retval None 2942 */ 2943 __STATIC_INLINE void LL_MDMA_ConfigBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration) 2944 { 2945 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2946 2947 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, 2948 MDMA_CTBR_DBUS | MDMA_CTBR_SBUS, 2949 Configuration); 2950 } 2951 2952 /** 2953 * @brief Set Destination Bus Selection. 2954 * @rmtoll CTBR DBUS LL_MDMA_SetDestBusSelection 2955 * @param MDMAx MDMAx Instance 2956 * @param Channel This parameter can be one of the following values: 2957 * @arg @ref LL_MDMA_CHANNEL_0 2958 * @arg @ref LL_MDMA_CHANNEL_1 2959 * @arg @ref LL_MDMA_CHANNEL_2 2960 * @arg @ref LL_MDMA_CHANNEL_3 2961 * @arg @ref LL_MDMA_CHANNEL_4 2962 * @arg @ref LL_MDMA_CHANNEL_5 2963 * @arg @ref LL_MDMA_CHANNEL_6 2964 * @arg @ref LL_MDMA_CHANNEL_7 2965 * @arg @ref LL_MDMA_CHANNEL_8 2966 * @arg @ref LL_MDMA_CHANNEL_9 2967 * @arg @ref LL_MDMA_CHANNEL_10 2968 * @arg @ref LL_MDMA_CHANNEL_11 2969 * @arg @ref LL_MDMA_CHANNEL_12 2970 * @arg @ref LL_MDMA_CHANNEL_13 2971 * @arg @ref LL_MDMA_CHANNEL_14 2972 * @arg @ref LL_MDMA_CHANNEL_15 2973 * @param DestBus This parameter can be one of the following values: 2974 * @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI 2975 * @arg @ref LL_MDMA_DEST_BUS_AHB_TCM 2976 * @retval None 2977 */ 2978 __STATIC_INLINE void LL_MDMA_SetDestBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestBus) 2979 { 2980 uint32_t mdma_base_addr = (uint32_t)MDMAx; 2981 2982 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_DBUS, DestBus); 2983 } 2984 2985 /** 2986 * @brief Get Destination Bus Selection. 2987 * @rmtoll CTBR DBUS LL_MDMA_GetDestBusSelection 2988 * @param MDMAx MDMAx Instance 2989 * @param Channel This parameter can be one of the following values: 2990 * @arg @ref LL_MDMA_CHANNEL_0 2991 * @arg @ref LL_MDMA_CHANNEL_1 2992 * @arg @ref LL_MDMA_CHANNEL_2 2993 * @arg @ref LL_MDMA_CHANNEL_3 2994 * @arg @ref LL_MDMA_CHANNEL_4 2995 * @arg @ref LL_MDMA_CHANNEL_5 2996 * @arg @ref LL_MDMA_CHANNEL_6 2997 * @arg @ref LL_MDMA_CHANNEL_7 2998 * @arg @ref LL_MDMA_CHANNEL_8 2999 * @arg @ref LL_MDMA_CHANNEL_9 3000 * @arg @ref LL_MDMA_CHANNEL_10 3001 * @arg @ref LL_MDMA_CHANNEL_11 3002 * @arg @ref LL_MDMA_CHANNEL_12 3003 * @arg @ref LL_MDMA_CHANNEL_13 3004 * @arg @ref LL_MDMA_CHANNEL_14 3005 * @arg @ref LL_MDMA_CHANNEL_15 3006 * @retval Returned value can be one of the following values: 3007 * @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI 3008 * @arg @ref LL_MDMA_DEST_BUS_AHB_TCM 3009 * @retval None 3010 */ 3011 __STATIC_INLINE uint32_t LL_MDMA_GetDestBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel) 3012 { 3013 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3014 3015 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_DBUS)); 3016 } 3017 3018 /** 3019 * @brief Set Source Bus Selection. 3020 * @rmtoll CTBR SBUS LL_MDMA_SetSrcBusSelection 3021 * @param MDMAx MDMAx Instance 3022 * @param Channel This parameter can be one of the following values: 3023 * @arg @ref LL_MDMA_CHANNEL_0 3024 * @arg @ref LL_MDMA_CHANNEL_1 3025 * @arg @ref LL_MDMA_CHANNEL_2 3026 * @arg @ref LL_MDMA_CHANNEL_3 3027 * @arg @ref LL_MDMA_CHANNEL_4 3028 * @arg @ref LL_MDMA_CHANNEL_5 3029 * @arg @ref LL_MDMA_CHANNEL_6 3030 * @arg @ref LL_MDMA_CHANNEL_7 3031 * @arg @ref LL_MDMA_CHANNEL_8 3032 * @arg @ref LL_MDMA_CHANNEL_9 3033 * @arg @ref LL_MDMA_CHANNEL_10 3034 * @arg @ref LL_MDMA_CHANNEL_11 3035 * @arg @ref LL_MDMA_CHANNEL_12 3036 * @arg @ref LL_MDMA_CHANNEL_13 3037 * @arg @ref LL_MDMA_CHANNEL_14 3038 * @arg @ref LL_MDMA_CHANNEL_15 3039 * @param SrcBus This parameter can be one of the following values: 3040 * @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI 3041 * @arg @ref LL_MDMA_SRC_BUS_AHB_TCM 3042 * @retval None 3043 */ 3044 __STATIC_INLINE void LL_MDMA_SetSrcBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcBus) 3045 { 3046 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3047 3048 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_SBUS, SrcBus); 3049 } 3050 3051 /** 3052 * @brief Get Source Bus Selection. 3053 * @rmtoll CTBR SBUS LL_MDMA_GetSrcBusSelection 3054 * @param MDMAx MDMAx Instance 3055 * @param Channel This parameter can be one of the following values: 3056 * @arg @ref LL_MDMA_CHANNEL_0 3057 * @arg @ref LL_MDMA_CHANNEL_1 3058 * @arg @ref LL_MDMA_CHANNEL_2 3059 * @arg @ref LL_MDMA_CHANNEL_3 3060 * @arg @ref LL_MDMA_CHANNEL_4 3061 * @arg @ref LL_MDMA_CHANNEL_5 3062 * @arg @ref LL_MDMA_CHANNEL_6 3063 * @arg @ref LL_MDMA_CHANNEL_7 3064 * @arg @ref LL_MDMA_CHANNEL_8 3065 * @arg @ref LL_MDMA_CHANNEL_9 3066 * @arg @ref LL_MDMA_CHANNEL_10 3067 * @arg @ref LL_MDMA_CHANNEL_11 3068 * @arg @ref LL_MDMA_CHANNEL_12 3069 * @arg @ref LL_MDMA_CHANNEL_13 3070 * @arg @ref LL_MDMA_CHANNEL_14 3071 * @arg @ref LL_MDMA_CHANNEL_15 3072 * @retval Returned value can be one of the following values: 3073 * @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI 3074 * @arg @ref LL_MDMA_SRC_BUS_AHB_TCM 3075 * @retval None 3076 */ 3077 __STATIC_INLINE uint32_t LL_MDMA_GetSrcBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel) 3078 { 3079 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3080 3081 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_SBUS)); 3082 } 3083 3084 /** 3085 * @brief Set Transfer hardware trigger (Request). 3086 * @rmtoll CTBR TSEL LL_MDMA_SetHWTrigger 3087 * @param MDMAx MDMAx Instance 3088 * @param Channel This parameter can be one of the following values: 3089 * @arg @ref LL_MDMA_CHANNEL_0 3090 * @arg @ref LL_MDMA_CHANNEL_1 3091 * @arg @ref LL_MDMA_CHANNEL_2 3092 * @arg @ref LL_MDMA_CHANNEL_3 3093 * @arg @ref LL_MDMA_CHANNEL_4 3094 * @arg @ref LL_MDMA_CHANNEL_5 3095 * @arg @ref LL_MDMA_CHANNEL_6 3096 * @arg @ref LL_MDMA_CHANNEL_7 3097 * @arg @ref LL_MDMA_CHANNEL_8 3098 * @arg @ref LL_MDMA_CHANNEL_9 3099 * @arg @ref LL_MDMA_CHANNEL_10 3100 * @arg @ref LL_MDMA_CHANNEL_11 3101 * @arg @ref LL_MDMA_CHANNEL_12 3102 * @arg @ref LL_MDMA_CHANNEL_13 3103 * @arg @ref LL_MDMA_CHANNEL_14 3104 * @arg @ref LL_MDMA_CHANNEL_15 3105 * @param HWRequest This parameter can be one of the following values: 3106 * @arg @ref LL_MDMA_REQ_DMA1_STREAM0_TC 3107 * @arg @ref LL_MDMA_REQ_DMA1_STREAM1_TC 3108 * @arg @ref LL_MDMA_REQ_DMA1_STREAM2_TC 3109 * @arg @ref LL_MDMA_REQ_DMA1_STREAM3_TC 3110 * @arg @ref LL_MDMA_REQ_DMA1_STREAM4_TC 3111 * @arg @ref LL_MDMA_REQ_DMA1_STREAM5_TC 3112 * @arg @ref LL_MDMA_REQ_DMA1_STREAM6_TC 3113 * @arg @ref LL_MDMA_REQ_DMA1_STREAM7_TC 3114 * @arg @ref LL_MDMA_REQ_DMA2_STREAM0_TC 3115 * @arg @ref LL_MDMA_REQ_DMA2_STREAM1_TC 3116 * @arg @ref LL_MDMA_REQ_DMA2_STREAM2_TC 3117 * @arg @ref LL_MDMA_REQ_DMA2_STREAM3_TC 3118 * @arg @ref LL_MDMA_REQ_DMA2_STREAM4_TC 3119 * @arg @ref LL_MDMA_REQ_DMA2_STREAM5_TC 3120 * @arg @ref LL_MDMA_REQ_DMA2_STREAM6_TC 3121 * @arg @ref LL_MDMA_REQ_DMA2_STREAM7_TC 3122 * @arg @ref LL_MDMA_REQ_LTDC_LINE_IT (*) 3123 * @arg @ref LL_MDMA_REQ_JPEG_INFIFO_TH (*) 3124 * @arg @ref LL_MDMA_REQ_JPEG_INFIFO_NF (*) 3125 * @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_TH (*) 3126 * @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_NE (*) 3127 * @arg @ref LL_MDMA_REQ_JPEG_END_CONVERSION (*) 3128 * @arg @ref LL_MDMA_REQ_QUADSPI_FIFO_TH (*) 3129 * @arg @ref LL_MDMA_REQ_QUADSPI_TC (*) 3130 * @arg @ref LL_MDMA_REQ_OCTOSPI1_FIFO_TH (*) 3131 * @arg @ref LL_MDMA_REQ_OCTOSPI1_TC (*) 3132 * @arg @ref LL_MDMA_REQ_DMA2D_CLUT_TC 3133 * @arg @ref LL_MDMA_REQ_DMA2D_TC 3134 * @arg @ref LL_MDMA_REQ_DMA2D_TW 3135 * @arg @ref LL_MDMA_REQ_DSI_TEARING_EFFECT (*) 3136 * @arg @ref LL_MDMA_REQ_DSI_END_REFRESH (*) 3137 * @arg @ref LL_MDMA_REQ_SDMMC1_END_DATA 3138 * @arg @ref LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER (*) 3139 * @arg @ref LL_MDMA_REQ_SDMMC1_COMMAND_END (*) 3140 * @arg @ref LL_MDMA_REQ_OCTOSPI2_FIFO_TH (*) 3141 * @arg @ref LL_MDMA_REQ_OCTOSPI2_TC (*) 3142 * @note (*) Availability depends on devices. 3143 * @retval None 3144 */ 3145 __STATIC_INLINE void LL_MDMA_SetHWTrigger(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t HWRequest) 3146 { 3147 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3148 3149 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_TSEL, HWRequest); 3150 } 3151 3152 /** 3153 * @brief Get Transfer hardware trigger (Request). 3154 * @rmtoll CTBR TSEL LL_MDMA_GetHWTrigger 3155 * @param MDMAx MDMAx Instance 3156 * @param Channel This parameter can be one of the following values: 3157 * @arg @ref LL_MDMA_CHANNEL_0 3158 * @arg @ref LL_MDMA_CHANNEL_1 3159 * @arg @ref LL_MDMA_CHANNEL_2 3160 * @arg @ref LL_MDMA_CHANNEL_3 3161 * @arg @ref LL_MDMA_CHANNEL_4 3162 * @arg @ref LL_MDMA_CHANNEL_5 3163 * @arg @ref LL_MDMA_CHANNEL_6 3164 * @arg @ref LL_MDMA_CHANNEL_7 3165 * @arg @ref LL_MDMA_CHANNEL_8 3166 * @arg @ref LL_MDMA_CHANNEL_9 3167 * @arg @ref LL_MDMA_CHANNEL_10 3168 * @arg @ref LL_MDMA_CHANNEL_11 3169 * @arg @ref LL_MDMA_CHANNEL_12 3170 * @arg @ref LL_MDMA_CHANNEL_13 3171 * @arg @ref LL_MDMA_CHANNEL_14 3172 * @arg @ref LL_MDMA_CHANNEL_15 3173 * @retval Returned value can be one of the following values: 3174 * @arg @ref LL_MDMA_REQ_DMA1_STREAM0_TC 3175 * @arg @ref LL_MDMA_REQ_DMA1_STREAM1_TC 3176 * @arg @ref LL_MDMA_REQ_DMA1_STREAM2_TC 3177 * @arg @ref LL_MDMA_REQ_DMA1_STREAM3_TC 3178 * @arg @ref LL_MDMA_REQ_DMA1_STREAM4_TC 3179 * @arg @ref LL_MDMA_REQ_DMA1_STREAM5_TC 3180 * @arg @ref LL_MDMA_REQ_DMA1_STREAM6_TC 3181 * @arg @ref LL_MDMA_REQ_DMA1_STREAM7_TC 3182 * @arg @ref LL_MDMA_REQ_DMA2_STREAM0_TC 3183 * @arg @ref LL_MDMA_REQ_DMA2_STREAM1_TC 3184 * @arg @ref LL_MDMA_REQ_DMA2_STREAM2_TC 3185 * @arg @ref LL_MDMA_REQ_DMA2_STREAM3_TC 3186 * @arg @ref LL_MDMA_REQ_DMA2_STREAM4_TC 3187 * @arg @ref LL_MDMA_REQ_DMA2_STREAM5_TC 3188 * @arg @ref LL_MDMA_REQ_DMA2_STREAM6_TC 3189 * @arg @ref LL_MDMA_REQ_DMA2_STREAM7_TC 3190 * @arg @ref LL_MDMA_REQ_LTDC_LINE_IT (*) 3191 * @arg @ref LL_MDMA_REQ_JPEG_INFIFO_TH (*) 3192 * @arg @ref LL_MDMA_REQ_JPEG_INFIFO_NF (*) 3193 * @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_TH (*) 3194 * @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_NE (*) 3195 * @arg @ref LL_MDMA_REQ_JPEG_END_CONVERSION (*) 3196 * @arg @ref LL_MDMA_REQ_QUADSPI_FIFO_TH (*) 3197 * @arg @ref LL_MDMA_REQ_QUADSPI_TC (*) 3198 * @arg @ref LL_MDMA_REQ_OCTOSPI1_FIFO_TH (*) 3199 * @arg @ref LL_MDMA_REQ_OCTOSPI1_TC (*) 3200 * @arg @ref LL_MDMA_REQ_DMA2D_CLUT_TC 3201 * @arg @ref LL_MDMA_REQ_DMA2D_TC 3202 * @arg @ref LL_MDMA_REQ_DMA2D_TW 3203 * @arg @ref LL_MDMA_REQ_DSI_TEARING_EFFECT (*) 3204 * @arg @ref LL_MDMA_REQ_DSI_END_REFRESH (*) 3205 * @arg @ref LL_MDMA_REQ_SDMMC1_END_DATA 3206 * @arg @ref LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER (*) 3207 * @arg @ref LL_MDMA_REQ_SDMMC1_COMMAND_END (*) 3208 * @arg @ref LL_MDMA_REQ_OCTOSPI2_FIFO_TH (*) 3209 * @arg @ref LL_MDMA_REQ_OCTOSPI2_TC (*) 3210 * @note (*) Availability depends on devices. 3211 * @retval None 3212 */ 3213 __STATIC_INLINE uint32_t LL_MDMA_GetHWTrigger(MDMA_TypeDef *MDMAx, uint32_t Channel) 3214 { 3215 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3216 3217 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_TSEL)); 3218 } 3219 3220 /** 3221 * @brief Set Mask Address. 3222 * @rmtoll CMAR MAR LL_MDMA_SetMaskAddress 3223 * @param MDMAx MDMAx Instance 3224 * @param Channel This parameter can be one of the following values: 3225 * @arg @ref LL_MDMA_CHANNEL_0 3226 * @arg @ref LL_MDMA_CHANNEL_1 3227 * @arg @ref LL_MDMA_CHANNEL_2 3228 * @arg @ref LL_MDMA_CHANNEL_3 3229 * @arg @ref LL_MDMA_CHANNEL_4 3230 * @arg @ref LL_MDMA_CHANNEL_5 3231 * @arg @ref LL_MDMA_CHANNEL_6 3232 * @arg @ref LL_MDMA_CHANNEL_7 3233 * @arg @ref LL_MDMA_CHANNEL_8 3234 * @arg @ref LL_MDMA_CHANNEL_9 3235 * @arg @ref LL_MDMA_CHANNEL_10 3236 * @arg @ref LL_MDMA_CHANNEL_11 3237 * @arg @ref LL_MDMA_CHANNEL_12 3238 * @arg @ref LL_MDMA_CHANNEL_13 3239 * @arg @ref LL_MDMA_CHANNEL_14 3240 * @arg @ref LL_MDMA_CHANNEL_15 3241 * @param MaskAddress Between 0 to 0xFFFFFFFF 3242 * @retval None 3243 */ 3244 __STATIC_INLINE void LL_MDMA_SetMaskAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t MaskAddress) 3245 { 3246 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3247 3248 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMAR, MaskAddress); 3249 } 3250 3251 /** 3252 * @brief Get Mask Address. 3253 * @rmtoll CMAR MAR LL_MDMA_GetMaskAddress 3254 * @param MDMAx MDMAx Instance 3255 * @param Channel This parameter can be one of the following values: 3256 * @arg @ref LL_MDMA_CHANNEL_0 3257 * @arg @ref LL_MDMA_CHANNEL_1 3258 * @arg @ref LL_MDMA_CHANNEL_2 3259 * @arg @ref LL_MDMA_CHANNEL_3 3260 * @arg @ref LL_MDMA_CHANNEL_4 3261 * @arg @ref LL_MDMA_CHANNEL_5 3262 * @arg @ref LL_MDMA_CHANNEL_6 3263 * @arg @ref LL_MDMA_CHANNEL_7 3264 * @arg @ref LL_MDMA_CHANNEL_8 3265 * @arg @ref LL_MDMA_CHANNEL_9 3266 * @arg @ref LL_MDMA_CHANNEL_10 3267 * @arg @ref LL_MDMA_CHANNEL_11 3268 * @arg @ref LL_MDMA_CHANNEL_12 3269 * @arg @ref LL_MDMA_CHANNEL_13 3270 * @arg @ref LL_MDMA_CHANNEL_14 3271 * @arg @ref LL_MDMA_CHANNEL_15 3272 * @retval Between 0 to 0xFFFFFFFF 3273 * @retval None 3274 */ 3275 __STATIC_INLINE uint32_t LL_MDMA_GetMaskAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 3276 { 3277 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3278 3279 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMAR)); 3280 } 3281 3282 /** 3283 * @brief Set Mask Data. 3284 * @rmtoll CMDR MDR LL_MDMA_SetMaskData 3285 * @param MDMAx MDMAx Instance 3286 * @param Channel This parameter can be one of the following values: 3287 * @arg @ref LL_MDMA_CHANNEL_0 3288 * @arg @ref LL_MDMA_CHANNEL_1 3289 * @arg @ref LL_MDMA_CHANNEL_2 3290 * @arg @ref LL_MDMA_CHANNEL_3 3291 * @arg @ref LL_MDMA_CHANNEL_4 3292 * @arg @ref LL_MDMA_CHANNEL_5 3293 * @arg @ref LL_MDMA_CHANNEL_6 3294 * @arg @ref LL_MDMA_CHANNEL_7 3295 * @arg @ref LL_MDMA_CHANNEL_8 3296 * @arg @ref LL_MDMA_CHANNEL_9 3297 * @arg @ref LL_MDMA_CHANNEL_10 3298 * @arg @ref LL_MDMA_CHANNEL_11 3299 * @arg @ref LL_MDMA_CHANNEL_12 3300 * @arg @ref LL_MDMA_CHANNEL_13 3301 * @arg @ref LL_MDMA_CHANNEL_14 3302 * @arg @ref LL_MDMA_CHANNEL_15 3303 * @param MaskData Between 0 to 0xFFFFFFFF 3304 * @retval None 3305 */ 3306 __STATIC_INLINE void LL_MDMA_SetMaskData(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t MaskData) 3307 { 3308 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3309 3310 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMDR, MaskData); 3311 } 3312 3313 /** 3314 * @brief Get Mask Data. 3315 * @rmtoll CMDR MDR LL_MDMA_GetMaskData 3316 * @param MDMAx MDMAx Instance 3317 * @param Channel This parameter can be one of the following values: 3318 * @arg @ref LL_MDMA_CHANNEL_0 3319 * @arg @ref LL_MDMA_CHANNEL_1 3320 * @arg @ref LL_MDMA_CHANNEL_2 3321 * @arg @ref LL_MDMA_CHANNEL_3 3322 * @arg @ref LL_MDMA_CHANNEL_4 3323 * @arg @ref LL_MDMA_CHANNEL_5 3324 * @arg @ref LL_MDMA_CHANNEL_6 3325 * @arg @ref LL_MDMA_CHANNEL_7 3326 * @arg @ref LL_MDMA_CHANNEL_8 3327 * @arg @ref LL_MDMA_CHANNEL_9 3328 * @arg @ref LL_MDMA_CHANNEL_10 3329 * @arg @ref LL_MDMA_CHANNEL_11 3330 * @arg @ref LL_MDMA_CHANNEL_12 3331 * @arg @ref LL_MDMA_CHANNEL_13 3332 * @arg @ref LL_MDMA_CHANNEL_14 3333 * @arg @ref LL_MDMA_CHANNEL_15 3334 * @retval Between 0 to 0xFFFFFFFF 3335 * @retval None 3336 */ 3337 __STATIC_INLINE uint32_t LL_MDMA_GetMaskData(MDMA_TypeDef *MDMAx, uint32_t Channel) 3338 { 3339 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3340 3341 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMDR)); 3342 } 3343 3344 /** 3345 * @brief Get Transfer Error Direction. 3346 * @rmtoll CESR TED LL_MDMA_GetXferErrorDirection 3347 * @param MDMAx MDMAx Instance 3348 * @param Channel This parameter can be one of the following values: 3349 * @arg @ref LL_MDMA_CHANNEL_0 3350 * @arg @ref LL_MDMA_CHANNEL_1 3351 * @arg @ref LL_MDMA_CHANNEL_2 3352 * @arg @ref LL_MDMA_CHANNEL_3 3353 * @arg @ref LL_MDMA_CHANNEL_4 3354 * @arg @ref LL_MDMA_CHANNEL_5 3355 * @arg @ref LL_MDMA_CHANNEL_6 3356 * @arg @ref LL_MDMA_CHANNEL_7 3357 * @arg @ref LL_MDMA_CHANNEL_8 3358 * @arg @ref LL_MDMA_CHANNEL_9 3359 * @arg @ref LL_MDMA_CHANNEL_10 3360 * @arg @ref LL_MDMA_CHANNEL_11 3361 * @arg @ref LL_MDMA_CHANNEL_12 3362 * @arg @ref LL_MDMA_CHANNEL_13 3363 * @arg @ref LL_MDMA_CHANNEL_14 3364 * @arg @ref LL_MDMA_CHANNEL_15 3365 * @retval Returned value can be one of the following values: 3366 * @arg @ref LL_MDMA_READ_ERROR 3367 * @arg @ref LL_MDMA_WRITE_ERROR 3368 * @retval None 3369 */ 3370 __STATIC_INLINE uint32_t LL_MDMA_GetXferErrorDirection(MDMA_TypeDef *MDMAx, uint32_t Channel) 3371 { 3372 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3373 3374 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TED)); 3375 } 3376 3377 /** 3378 * @brief Get Transfer Error LSB Address. 3379 * @rmtoll CESR TEA LL_MDMA_GetXferErrorLSBAddress 3380 * @param MDMAx MDMAx Instance 3381 * @param Channel This parameter can be one of the following values: 3382 * @arg @ref LL_MDMA_CHANNEL_0 3383 * @arg @ref LL_MDMA_CHANNEL_1 3384 * @arg @ref LL_MDMA_CHANNEL_2 3385 * @arg @ref LL_MDMA_CHANNEL_3 3386 * @arg @ref LL_MDMA_CHANNEL_4 3387 * @arg @ref LL_MDMA_CHANNEL_5 3388 * @arg @ref LL_MDMA_CHANNEL_6 3389 * @arg @ref LL_MDMA_CHANNEL_7 3390 * @arg @ref LL_MDMA_CHANNEL_8 3391 * @arg @ref LL_MDMA_CHANNEL_9 3392 * @arg @ref LL_MDMA_CHANNEL_10 3393 * @arg @ref LL_MDMA_CHANNEL_11 3394 * @arg @ref LL_MDMA_CHANNEL_12 3395 * @arg @ref LL_MDMA_CHANNEL_13 3396 * @arg @ref LL_MDMA_CHANNEL_14 3397 * @arg @ref LL_MDMA_CHANNEL_15 3398 * @retval Between 0 to 0x0000007F 3399 * @retval None 3400 */ 3401 __STATIC_INLINE uint32_t LL_MDMA_GetXferErrorLSBAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 3402 { 3403 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3404 3405 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TEA)); 3406 } 3407 3408 /** 3409 * @} 3410 */ 3411 3412 /** @defgroup MDMA_LL_EF_FLAG_Management FLAG_Management 3413 * @ingroup RTEMSBSPsARMSTM32H7 3414 * @{ 3415 */ 3416 3417 /** 3418 * @brief Get MDMA Channel x Global Interrupt flag. 3419 * @rmtoll GISR0 GIFx LL_MDMA_IsActiveFlag_GI 3420 * @param MDMAx MDMAx Instance 3421 * @param Channel This parameter can be one of the following values: 3422 * @arg @ref LL_MDMA_CHANNEL_0 3423 * @arg @ref LL_MDMA_CHANNEL_1 3424 * @arg @ref LL_MDMA_CHANNEL_2 3425 * @arg @ref LL_MDMA_CHANNEL_3 3426 * @arg @ref LL_MDMA_CHANNEL_4 3427 * @arg @ref LL_MDMA_CHANNEL_5 3428 * @arg @ref LL_MDMA_CHANNEL_6 3429 * @arg @ref LL_MDMA_CHANNEL_7 3430 * @arg @ref LL_MDMA_CHANNEL_8 3431 * @arg @ref LL_MDMA_CHANNEL_9 3432 * @arg @ref LL_MDMA_CHANNEL_10 3433 * @arg @ref LL_MDMA_CHANNEL_11 3434 * @arg @ref LL_MDMA_CHANNEL_12 3435 * @arg @ref LL_MDMA_CHANNEL_13 3436 * @arg @ref LL_MDMA_CHANNEL_14 3437 * @arg @ref LL_MDMA_CHANNEL_15 3438 * @retval State of bit (1 or 0). 3439 */ 3440 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_GI(MDMA_TypeDef *MDMAx, uint32_t Channel) 3441 { 3442 return ((READ_BIT(MDMAx->GISR0 ,(MDMA_GISR0_GIF0 << (Channel & 0x0000000FU)))==(MDMA_GISR0_GIF0 << (Channel & 0x0000000FU))) ? 1UL : 0UL); 3443 } 3444 3445 /** 3446 * @brief Get MDMA Channel x Transfer Error interrupt flag. 3447 * @rmtoll CISR TEIF LL_MDMA_IsActiveFlag_TE 3448 * @param MDMAx MDMAx Instance 3449 * @param Channel This parameter can be one of the following values: 3450 * @arg @ref LL_MDMA_CHANNEL_0 3451 * @arg @ref LL_MDMA_CHANNEL_1 3452 * @arg @ref LL_MDMA_CHANNEL_2 3453 * @arg @ref LL_MDMA_CHANNEL_3 3454 * @arg @ref LL_MDMA_CHANNEL_4 3455 * @arg @ref LL_MDMA_CHANNEL_5 3456 * @arg @ref LL_MDMA_CHANNEL_6 3457 * @arg @ref LL_MDMA_CHANNEL_7 3458 * @arg @ref LL_MDMA_CHANNEL_8 3459 * @arg @ref LL_MDMA_CHANNEL_9 3460 * @arg @ref LL_MDMA_CHANNEL_10 3461 * @arg @ref LL_MDMA_CHANNEL_11 3462 * @arg @ref LL_MDMA_CHANNEL_12 3463 * @arg @ref LL_MDMA_CHANNEL_13 3464 * @arg @ref LL_MDMA_CHANNEL_14 3465 * @arg @ref LL_MDMA_CHANNEL_15 3466 * @retval State of bit (1 or 0). 3467 */ 3468 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 3469 { 3470 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3471 3472 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_TEIF) == (MDMA_CISR_TEIF)) ? 1UL : 0UL); 3473 } 3474 3475 /** 3476 * @brief Get MDMA Channel x Channel Transfer Complete interrupt flag. 3477 * @rmtoll CISR CTCIF LL_MDMA_IsActiveFlag_CTC 3478 * @param MDMAx MDMAx Instance 3479 * @param Channel This parameter can be one of the following values: 3480 * @arg @ref LL_MDMA_CHANNEL_0 3481 * @arg @ref LL_MDMA_CHANNEL_1 3482 * @arg @ref LL_MDMA_CHANNEL_2 3483 * @arg @ref LL_MDMA_CHANNEL_3 3484 * @arg @ref LL_MDMA_CHANNEL_4 3485 * @arg @ref LL_MDMA_CHANNEL_5 3486 * @arg @ref LL_MDMA_CHANNEL_6 3487 * @arg @ref LL_MDMA_CHANNEL_7 3488 * @arg @ref LL_MDMA_CHANNEL_8 3489 * @arg @ref LL_MDMA_CHANNEL_9 3490 * @arg @ref LL_MDMA_CHANNEL_10 3491 * @arg @ref LL_MDMA_CHANNEL_11 3492 * @arg @ref LL_MDMA_CHANNEL_12 3493 * @arg @ref LL_MDMA_CHANNEL_13 3494 * @arg @ref LL_MDMA_CHANNEL_14 3495 * @arg @ref LL_MDMA_CHANNEL_15 3496 * @retval State of bit (1 or 0). 3497 */ 3498 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 3499 { 3500 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3501 3502 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_CTCIF) == (MDMA_CISR_CTCIF)) ? 1UL : 0UL); 3503 } 3504 3505 /** 3506 * @brief Get MDMA Channel x Block Repeat Transfer complete interrupt flag. 3507 * @rmtoll CISR BRTIF LL_MDMA_IsActiveFlag_BRT 3508 * @param MDMAx MDMAx Instance 3509 * @param Channel This parameter can be one of the following values: 3510 * @arg @ref LL_MDMA_CHANNEL_0 3511 * @arg @ref LL_MDMA_CHANNEL_1 3512 * @arg @ref LL_MDMA_CHANNEL_2 3513 * @arg @ref LL_MDMA_CHANNEL_3 3514 * @arg @ref LL_MDMA_CHANNEL_4 3515 * @arg @ref LL_MDMA_CHANNEL_5 3516 * @arg @ref LL_MDMA_CHANNEL_6 3517 * @arg @ref LL_MDMA_CHANNEL_7 3518 * @arg @ref LL_MDMA_CHANNEL_8 3519 * @arg @ref LL_MDMA_CHANNEL_9 3520 * @arg @ref LL_MDMA_CHANNEL_10 3521 * @arg @ref LL_MDMA_CHANNEL_11 3522 * @arg @ref LL_MDMA_CHANNEL_12 3523 * @arg @ref LL_MDMA_CHANNEL_13 3524 * @arg @ref LL_MDMA_CHANNEL_14 3525 * @arg @ref LL_MDMA_CHANNEL_15 3526 * @retval State of bit (1 or 0). 3527 */ 3528 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 3529 { 3530 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3531 3532 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_BRTIF) == (MDMA_CISR_BRTIF)) ? 1UL : 0UL); 3533 } 3534 3535 /** 3536 * @brief Get MDMA Channel x Block Transfer complete interrupt flag. 3537 * @rmtoll CISR BTIF LL_MDMA_IsActiveFlag_BT 3538 * @param MDMAx MDMAx Instance 3539 * @param Channel This parameter can be one of the following values: 3540 * @arg @ref LL_MDMA_CHANNEL_0 3541 * @arg @ref LL_MDMA_CHANNEL_1 3542 * @arg @ref LL_MDMA_CHANNEL_2 3543 * @arg @ref LL_MDMA_CHANNEL_3 3544 * @arg @ref LL_MDMA_CHANNEL_4 3545 * @arg @ref LL_MDMA_CHANNEL_5 3546 * @arg @ref LL_MDMA_CHANNEL_6 3547 * @arg @ref LL_MDMA_CHANNEL_7 3548 * @arg @ref LL_MDMA_CHANNEL_8 3549 * @arg @ref LL_MDMA_CHANNEL_9 3550 * @arg @ref LL_MDMA_CHANNEL_10 3551 * @arg @ref LL_MDMA_CHANNEL_11 3552 * @arg @ref LL_MDMA_CHANNEL_12 3553 * @arg @ref LL_MDMA_CHANNEL_13 3554 * @arg @ref LL_MDMA_CHANNEL_14 3555 * @arg @ref LL_MDMA_CHANNEL_15 3556 * @retval State of bit (1 or 0). 3557 */ 3558 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 3559 { 3560 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3561 3562 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_BTIF) == (MDMA_CISR_BTIF)) ? 1UL : 0UL); 3563 } 3564 3565 /** 3566 * @brief Get MDMA Channel x buffer transfer complete interrupt flag. 3567 * @rmtoll CISR TCIF LL_MDMA_IsActiveFlag_TC 3568 * @param MDMAx MDMAx Instance 3569 * @param Channel This parameter can be one of the following values: 3570 * @arg @ref LL_MDMA_CHANNEL_0 3571 * @arg @ref LL_MDMA_CHANNEL_1 3572 * @arg @ref LL_MDMA_CHANNEL_2 3573 * @arg @ref LL_MDMA_CHANNEL_3 3574 * @arg @ref LL_MDMA_CHANNEL_4 3575 * @arg @ref LL_MDMA_CHANNEL_5 3576 * @arg @ref LL_MDMA_CHANNEL_6 3577 * @arg @ref LL_MDMA_CHANNEL_7 3578 * @arg @ref LL_MDMA_CHANNEL_8 3579 * @arg @ref LL_MDMA_CHANNEL_9 3580 * @arg @ref LL_MDMA_CHANNEL_10 3581 * @arg @ref LL_MDMA_CHANNEL_11 3582 * @arg @ref LL_MDMA_CHANNEL_12 3583 * @arg @ref LL_MDMA_CHANNEL_13 3584 * @arg @ref LL_MDMA_CHANNEL_14 3585 * @arg @ref LL_MDMA_CHANNEL_15 3586 * @retval State of bit (1 or 0). 3587 */ 3588 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 3589 { 3590 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3591 3592 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_TCIF) == (MDMA_CISR_TCIF)) ? 1UL : 0UL); 3593 } 3594 3595 /** 3596 * @brief Get MDMA Channel x ReQuest Active flag. 3597 * @rmtoll CISR CRQA LL_MDMA_IsActiveFlag_CRQA 3598 * @param MDMAx MDMAx Instance 3599 * @param Channel This parameter can be one of the following values: 3600 * @arg @ref LL_MDMA_CHANNEL_0 3601 * @arg @ref LL_MDMA_CHANNEL_1 3602 * @arg @ref LL_MDMA_CHANNEL_2 3603 * @arg @ref LL_MDMA_CHANNEL_3 3604 * @arg @ref LL_MDMA_CHANNEL_4 3605 * @arg @ref LL_MDMA_CHANNEL_5 3606 * @arg @ref LL_MDMA_CHANNEL_6 3607 * @arg @ref LL_MDMA_CHANNEL_7 3608 * @arg @ref LL_MDMA_CHANNEL_8 3609 * @arg @ref LL_MDMA_CHANNEL_9 3610 * @arg @ref LL_MDMA_CHANNEL_10 3611 * @arg @ref LL_MDMA_CHANNEL_11 3612 * @arg @ref LL_MDMA_CHANNEL_12 3613 * @arg @ref LL_MDMA_CHANNEL_13 3614 * @arg @ref LL_MDMA_CHANNEL_14 3615 * @arg @ref LL_MDMA_CHANNEL_15 3616 * @retval State of bit (1 or 0). 3617 */ 3618 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_CRQA(MDMA_TypeDef *MDMAx, uint32_t Channel) 3619 { 3620 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3621 3622 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_CRQA) == (MDMA_CISR_CRQA)) ? 1UL : 0UL); 3623 } 3624 3625 /** 3626 * @brief Get MDMA Channel x Block Size Error flag. 3627 * @rmtoll CESR BSE LL_MDMA_IsActiveFlag_BSE 3628 * @param MDMAx MDMAx Instance 3629 * @param Channel This parameter can be one of the following values: 3630 * @arg @ref LL_MDMA_CHANNEL_0 3631 * @arg @ref LL_MDMA_CHANNEL_1 3632 * @arg @ref LL_MDMA_CHANNEL_2 3633 * @arg @ref LL_MDMA_CHANNEL_3 3634 * @arg @ref LL_MDMA_CHANNEL_4 3635 * @arg @ref LL_MDMA_CHANNEL_5 3636 * @arg @ref LL_MDMA_CHANNEL_6 3637 * @arg @ref LL_MDMA_CHANNEL_7 3638 * @arg @ref LL_MDMA_CHANNEL_8 3639 * @arg @ref LL_MDMA_CHANNEL_9 3640 * @arg @ref LL_MDMA_CHANNEL_10 3641 * @arg @ref LL_MDMA_CHANNEL_11 3642 * @arg @ref LL_MDMA_CHANNEL_12 3643 * @arg @ref LL_MDMA_CHANNEL_13 3644 * @arg @ref LL_MDMA_CHANNEL_14 3645 * @arg @ref LL_MDMA_CHANNEL_15 3646 * @retval State of bit (1 or 0). 3647 */ 3648 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BSE(MDMA_TypeDef *MDMAx, uint32_t Channel) 3649 { 3650 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3651 3652 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_BSE) == (MDMA_CESR_BSE)) ? 1UL : 0UL); 3653 } 3654 3655 /** 3656 * @brief Get MDMA Channel x Address/Size Error flag. 3657 * @rmtoll CESR ASE LL_MDMA_IsActiveFlag_ASE 3658 * @param MDMAx MDMAx Instance 3659 * @param Channel This parameter can be one of the following values: 3660 * @arg @ref LL_MDMA_CHANNEL_0 3661 * @arg @ref LL_MDMA_CHANNEL_1 3662 * @arg @ref LL_MDMA_CHANNEL_2 3663 * @arg @ref LL_MDMA_CHANNEL_3 3664 * @arg @ref LL_MDMA_CHANNEL_4 3665 * @arg @ref LL_MDMA_CHANNEL_5 3666 * @arg @ref LL_MDMA_CHANNEL_6 3667 * @arg @ref LL_MDMA_CHANNEL_7 3668 * @arg @ref LL_MDMA_CHANNEL_8 3669 * @arg @ref LL_MDMA_CHANNEL_9 3670 * @arg @ref LL_MDMA_CHANNEL_10 3671 * @arg @ref LL_MDMA_CHANNEL_11 3672 * @arg @ref LL_MDMA_CHANNEL_12 3673 * @arg @ref LL_MDMA_CHANNEL_13 3674 * @arg @ref LL_MDMA_CHANNEL_14 3675 * @arg @ref LL_MDMA_CHANNEL_15 3676 * @retval State of bit (1 or 0). 3677 */ 3678 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_ASE(MDMA_TypeDef *MDMAx, uint32_t Channel) 3679 { 3680 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3681 3682 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_ASE) == (MDMA_CESR_ASE)) ? 1UL : 0UL); 3683 } 3684 3685 /** 3686 * @brief Get MDMA Channel x Transfer Error Mask Data flag. 3687 * @rmtoll CESR TEMD LL_MDMA_IsActiveFlag_TEMD 3688 * @param MDMAx MDMAx Instance 3689 * @param Channel This parameter can be one of the following values: 3690 * @arg @ref LL_MDMA_CHANNEL_0 3691 * @arg @ref LL_MDMA_CHANNEL_1 3692 * @arg @ref LL_MDMA_CHANNEL_2 3693 * @arg @ref LL_MDMA_CHANNEL_3 3694 * @arg @ref LL_MDMA_CHANNEL_4 3695 * @arg @ref LL_MDMA_CHANNEL_5 3696 * @arg @ref LL_MDMA_CHANNEL_6 3697 * @arg @ref LL_MDMA_CHANNEL_7 3698 * @arg @ref LL_MDMA_CHANNEL_8 3699 * @arg @ref LL_MDMA_CHANNEL_9 3700 * @arg @ref LL_MDMA_CHANNEL_10 3701 * @arg @ref LL_MDMA_CHANNEL_11 3702 * @arg @ref LL_MDMA_CHANNEL_12 3703 * @arg @ref LL_MDMA_CHANNEL_13 3704 * @arg @ref LL_MDMA_CHANNEL_14 3705 * @arg @ref LL_MDMA_CHANNEL_15 3706 * @retval State of bit (1 or 0). 3707 */ 3708 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TEMD(MDMA_TypeDef *MDMAx, uint32_t Channel) 3709 { 3710 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3711 3712 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TEMD) == (MDMA_CESR_TEMD)) ? 1UL : 0UL); 3713 } 3714 3715 /** 3716 * @brief Get MDMA Channel x Transfer Error Link Data flag. 3717 * @rmtoll CESR TELD LL_MDMA_IsActiveFlag_TELD 3718 * @param MDMAx MDMAx Instance 3719 * @param Channel This parameter can be one of the following values: 3720 * @arg @ref LL_MDMA_CHANNEL_0 3721 * @arg @ref LL_MDMA_CHANNEL_1 3722 * @arg @ref LL_MDMA_CHANNEL_2 3723 * @arg @ref LL_MDMA_CHANNEL_3 3724 * @arg @ref LL_MDMA_CHANNEL_4 3725 * @arg @ref LL_MDMA_CHANNEL_5 3726 * @arg @ref LL_MDMA_CHANNEL_6 3727 * @arg @ref LL_MDMA_CHANNEL_7 3728 * @arg @ref LL_MDMA_CHANNEL_8 3729 * @arg @ref LL_MDMA_CHANNEL_9 3730 * @arg @ref LL_MDMA_CHANNEL_10 3731 * @arg @ref LL_MDMA_CHANNEL_11 3732 * @arg @ref LL_MDMA_CHANNEL_12 3733 * @arg @ref LL_MDMA_CHANNEL_13 3734 * @arg @ref LL_MDMA_CHANNEL_14 3735 * @arg @ref LL_MDMA_CHANNEL_15 3736 * @retval State of bit (1 or 0). 3737 */ 3738 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TELD(MDMA_TypeDef *MDMAx, uint32_t Channel) 3739 { 3740 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3741 3742 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TELD) == (MDMA_CESR_TELD)) ? 1UL : 0UL); 3743 } 3744 3745 /** 3746 * @brief Clear MDMA Channel x Transfer Error interrupt flag. 3747 * @rmtoll CIFCR CTEIF LL_MDMA_ClearFlag_TE 3748 * @param MDMAx MDMAx Instance 3749 * @param Channel This parameter can be one of the following values: 3750 * @arg @ref LL_MDMA_CHANNEL_0 3751 * @arg @ref LL_MDMA_CHANNEL_1 3752 * @arg @ref LL_MDMA_CHANNEL_2 3753 * @arg @ref LL_MDMA_CHANNEL_3 3754 * @arg @ref LL_MDMA_CHANNEL_4 3755 * @arg @ref LL_MDMA_CHANNEL_5 3756 * @arg @ref LL_MDMA_CHANNEL_6 3757 * @arg @ref LL_MDMA_CHANNEL_7 3758 * @arg @ref LL_MDMA_CHANNEL_8 3759 * @arg @ref LL_MDMA_CHANNEL_9 3760 * @arg @ref LL_MDMA_CHANNEL_10 3761 * @arg @ref LL_MDMA_CHANNEL_11 3762 * @arg @ref LL_MDMA_CHANNEL_12 3763 * @arg @ref LL_MDMA_CHANNEL_13 3764 * @arg @ref LL_MDMA_CHANNEL_14 3765 * @arg @ref LL_MDMA_CHANNEL_15 3766 * @retval None 3767 */ 3768 __STATIC_INLINE void LL_MDMA_ClearFlag_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 3769 { 3770 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3771 3772 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CTEIF); 3773 } 3774 3775 /** 3776 * @brief Clear MDMA Channel x Channel Transfer Complete interrupt flag. 3777 * @rmtoll CIFCR CCTCIF LL_MDMA_ClearFlag_CTC 3778 * @param MDMAx MDMAx Instance 3779 * @param Channel This parameter can be one of the following values: 3780 * @arg @ref LL_MDMA_CHANNEL_0 3781 * @arg @ref LL_MDMA_CHANNEL_1 3782 * @arg @ref LL_MDMA_CHANNEL_2 3783 * @arg @ref LL_MDMA_CHANNEL_3 3784 * @arg @ref LL_MDMA_CHANNEL_4 3785 * @arg @ref LL_MDMA_CHANNEL_5 3786 * @arg @ref LL_MDMA_CHANNEL_6 3787 * @arg @ref LL_MDMA_CHANNEL_7 3788 * @arg @ref LL_MDMA_CHANNEL_8 3789 * @arg @ref LL_MDMA_CHANNEL_9 3790 * @arg @ref LL_MDMA_CHANNEL_10 3791 * @arg @ref LL_MDMA_CHANNEL_11 3792 * @arg @ref LL_MDMA_CHANNEL_12 3793 * @arg @ref LL_MDMA_CHANNEL_13 3794 * @arg @ref LL_MDMA_CHANNEL_14 3795 * @arg @ref LL_MDMA_CHANNEL_15 3796 * @retval None 3797 */ 3798 __STATIC_INLINE void LL_MDMA_ClearFlag_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 3799 { 3800 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3801 3802 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CCTCIF); 3803 } 3804 3805 /** 3806 * @brief Clear MDMA Channel x Block Repeat Transfer complete interrupt flag. 3807 * @rmtoll CIFCR CBRTIF LL_MDMA_ClearFlag_BRT 3808 * @param MDMAx MDMAx Instance 3809 * @param Channel This parameter can be one of the following values: 3810 * @arg @ref LL_MDMA_CHANNEL_0 3811 * @arg @ref LL_MDMA_CHANNEL_1 3812 * @arg @ref LL_MDMA_CHANNEL_2 3813 * @arg @ref LL_MDMA_CHANNEL_3 3814 * @arg @ref LL_MDMA_CHANNEL_4 3815 * @arg @ref LL_MDMA_CHANNEL_5 3816 * @arg @ref LL_MDMA_CHANNEL_6 3817 * @arg @ref LL_MDMA_CHANNEL_7 3818 * @arg @ref LL_MDMA_CHANNEL_8 3819 * @arg @ref LL_MDMA_CHANNEL_9 3820 * @arg @ref LL_MDMA_CHANNEL_10 3821 * @arg @ref LL_MDMA_CHANNEL_11 3822 * @arg @ref LL_MDMA_CHANNEL_12 3823 * @arg @ref LL_MDMA_CHANNEL_13 3824 * @arg @ref LL_MDMA_CHANNEL_14 3825 * @arg @ref LL_MDMA_CHANNEL_15 3826 * @retval None 3827 */ 3828 __STATIC_INLINE void LL_MDMA_ClearFlag_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 3829 { 3830 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3831 3832 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CBRTIF); 3833 } 3834 3835 /** 3836 * @brief Clear MDMA Channel x Block Transfer complete interrupt flag. 3837 * @rmtoll CIFCR CBTIF LL_MDMA_ClearFlag_BT 3838 * @param MDMAx MDMAx Instance 3839 * @param Channel This parameter can be one of the following values: 3840 * @arg @ref LL_MDMA_CHANNEL_0 3841 * @arg @ref LL_MDMA_CHANNEL_1 3842 * @arg @ref LL_MDMA_CHANNEL_2 3843 * @arg @ref LL_MDMA_CHANNEL_3 3844 * @arg @ref LL_MDMA_CHANNEL_4 3845 * @arg @ref LL_MDMA_CHANNEL_5 3846 * @arg @ref LL_MDMA_CHANNEL_6 3847 * @arg @ref LL_MDMA_CHANNEL_7 3848 * @arg @ref LL_MDMA_CHANNEL_8 3849 * @arg @ref LL_MDMA_CHANNEL_9 3850 * @arg @ref LL_MDMA_CHANNEL_10 3851 * @arg @ref LL_MDMA_CHANNEL_11 3852 * @arg @ref LL_MDMA_CHANNEL_12 3853 * @arg @ref LL_MDMA_CHANNEL_13 3854 * @arg @ref LL_MDMA_CHANNEL_14 3855 * @arg @ref LL_MDMA_CHANNEL_15 3856 * @retval None 3857 */ 3858 __STATIC_INLINE void LL_MDMA_ClearFlag_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 3859 { 3860 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3861 3862 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CBTIF); 3863 } 3864 3865 /** 3866 * @brief Clear MDMA Channel x buffer transfer Complete Interrupt Flag. 3867 * @rmtoll CIFCR CLTCIF LL_MDMA_ClearFlag_TC 3868 * @param MDMAx MDMAx Instance 3869 * @param Channel This parameter can be one of the following values: 3870 * @arg @ref LL_MDMA_CHANNEL_0 3871 * @arg @ref LL_MDMA_CHANNEL_1 3872 * @arg @ref LL_MDMA_CHANNEL_2 3873 * @arg @ref LL_MDMA_CHANNEL_3 3874 * @arg @ref LL_MDMA_CHANNEL_4 3875 * @arg @ref LL_MDMA_CHANNEL_5 3876 * @arg @ref LL_MDMA_CHANNEL_6 3877 * @arg @ref LL_MDMA_CHANNEL_7 3878 * @arg @ref LL_MDMA_CHANNEL_8 3879 * @arg @ref LL_MDMA_CHANNEL_9 3880 * @arg @ref LL_MDMA_CHANNEL_10 3881 * @arg @ref LL_MDMA_CHANNEL_11 3882 * @arg @ref LL_MDMA_CHANNEL_12 3883 * @arg @ref LL_MDMA_CHANNEL_13 3884 * @arg @ref LL_MDMA_CHANNEL_14 3885 * @arg @ref LL_MDMA_CHANNEL_15 3886 * @retval None 3887 */ 3888 __STATIC_INLINE void LL_MDMA_ClearFlag_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 3889 { 3890 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3891 3892 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CLTCIF); 3893 } 3894 3895 /** 3896 * @} 3897 */ 3898 3899 /** @defgroup MDMA_LL_EF_IT_Management IT_Management 3900 * @ingroup RTEMSBSPsARMSTM32H7 3901 * @{ 3902 */ 3903 3904 /** 3905 * @brief Enable MDMA Channel x Transfer Error interrupt. 3906 * @rmtoll CCR TEIE LL_MDMA_EnableIT_TE 3907 * @param MDMAx MDMAx Instance 3908 * @param Channel This parameter can be one of the following values: 3909 * @arg @ref LL_MDMA_CHANNEL_0 3910 * @arg @ref LL_MDMA_CHANNEL_1 3911 * @arg @ref LL_MDMA_CHANNEL_2 3912 * @arg @ref LL_MDMA_CHANNEL_3 3913 * @arg @ref LL_MDMA_CHANNEL_4 3914 * @arg @ref LL_MDMA_CHANNEL_5 3915 * @arg @ref LL_MDMA_CHANNEL_6 3916 * @arg @ref LL_MDMA_CHANNEL_7 3917 * @arg @ref LL_MDMA_CHANNEL_8 3918 * @arg @ref LL_MDMA_CHANNEL_9 3919 * @arg @ref LL_MDMA_CHANNEL_10 3920 * @arg @ref LL_MDMA_CHANNEL_11 3921 * @arg @ref LL_MDMA_CHANNEL_12 3922 * @arg @ref LL_MDMA_CHANNEL_13 3923 * @arg @ref LL_MDMA_CHANNEL_14 3924 * @arg @ref LL_MDMA_CHANNEL_15 3925 * @retval None 3926 */ 3927 __STATIC_INLINE void LL_MDMA_EnableIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 3928 { 3929 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3930 3931 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE); 3932 } 3933 3934 /** 3935 * @brief Enable MDMA Channel x Channel Transfer Complete interrupt. 3936 * @rmtoll CCR CTCIE LL_MDMA_EnableIT_CTC 3937 * @param MDMAx MDMAx Instance 3938 * @param Channel This parameter can be one of the following values: 3939 * @arg @ref LL_MDMA_CHANNEL_0 3940 * @arg @ref LL_MDMA_CHANNEL_1 3941 * @arg @ref LL_MDMA_CHANNEL_2 3942 * @arg @ref LL_MDMA_CHANNEL_3 3943 * @arg @ref LL_MDMA_CHANNEL_4 3944 * @arg @ref LL_MDMA_CHANNEL_5 3945 * @arg @ref LL_MDMA_CHANNEL_6 3946 * @arg @ref LL_MDMA_CHANNEL_7 3947 * @arg @ref LL_MDMA_CHANNEL_8 3948 * @arg @ref LL_MDMA_CHANNEL_9 3949 * @arg @ref LL_MDMA_CHANNEL_10 3950 * @arg @ref LL_MDMA_CHANNEL_11 3951 * @arg @ref LL_MDMA_CHANNEL_12 3952 * @arg @ref LL_MDMA_CHANNEL_13 3953 * @arg @ref LL_MDMA_CHANNEL_14 3954 * @arg @ref LL_MDMA_CHANNEL_15 3955 * @retval None 3956 */ 3957 __STATIC_INLINE void LL_MDMA_EnableIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 3958 { 3959 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3960 3961 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE); 3962 } 3963 3964 /** 3965 * @brief Enable MDMA Channel x Block Repeat Transfer interrupt. 3966 * @rmtoll CCR BRTIE LL_MDMA_EnableIT_BRT 3967 * @param MDMAx MDMAx Instance 3968 * @param Channel This parameter can be one of the following values: 3969 * @arg @ref LL_MDMA_CHANNEL_0 3970 * @arg @ref LL_MDMA_CHANNEL_1 3971 * @arg @ref LL_MDMA_CHANNEL_2 3972 * @arg @ref LL_MDMA_CHANNEL_3 3973 * @arg @ref LL_MDMA_CHANNEL_4 3974 * @arg @ref LL_MDMA_CHANNEL_5 3975 * @arg @ref LL_MDMA_CHANNEL_6 3976 * @arg @ref LL_MDMA_CHANNEL_7 3977 * @arg @ref LL_MDMA_CHANNEL_8 3978 * @arg @ref LL_MDMA_CHANNEL_9 3979 * @arg @ref LL_MDMA_CHANNEL_10 3980 * @arg @ref LL_MDMA_CHANNEL_11 3981 * @arg @ref LL_MDMA_CHANNEL_12 3982 * @arg @ref LL_MDMA_CHANNEL_13 3983 * @arg @ref LL_MDMA_CHANNEL_14 3984 * @arg @ref LL_MDMA_CHANNEL_15 3985 * @retval None 3986 */ 3987 __STATIC_INLINE void LL_MDMA_EnableIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 3988 { 3989 uint32_t mdma_base_addr = (uint32_t)MDMAx; 3990 3991 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE); 3992 } 3993 3994 /** 3995 * @brief Enable MDMA Channel x Block Transfer interrupt. 3996 * @rmtoll CCR BTIE LL_MDMA_EnableIT_BT 3997 * @param MDMAx MDMAx Instance 3998 * @param Channel This parameter can be one of the following values: 3999 * @arg @ref LL_MDMA_CHANNEL_0 4000 * @arg @ref LL_MDMA_CHANNEL_1 4001 * @arg @ref LL_MDMA_CHANNEL_2 4002 * @arg @ref LL_MDMA_CHANNEL_3 4003 * @arg @ref LL_MDMA_CHANNEL_4 4004 * @arg @ref LL_MDMA_CHANNEL_5 4005 * @arg @ref LL_MDMA_CHANNEL_6 4006 * @arg @ref LL_MDMA_CHANNEL_7 4007 * @arg @ref LL_MDMA_CHANNEL_8 4008 * @arg @ref LL_MDMA_CHANNEL_9 4009 * @arg @ref LL_MDMA_CHANNEL_10 4010 * @arg @ref LL_MDMA_CHANNEL_11 4011 * @arg @ref LL_MDMA_CHANNEL_12 4012 * @arg @ref LL_MDMA_CHANNEL_13 4013 * @arg @ref LL_MDMA_CHANNEL_14 4014 * @arg @ref LL_MDMA_CHANNEL_15 4015 * @retval None 4016 */ 4017 __STATIC_INLINE void LL_MDMA_EnableIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 4018 { 4019 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4020 4021 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE); 4022 } 4023 4024 /** 4025 * @brief Enable MDMA Channel x buffer transfer complete interrupt. 4026 * @rmtoll CCR TCIE LL_MDMA_EnableIT_TC 4027 * @param MDMAx MDMAx Instance 4028 * @param Channel This parameter can be one of the following values: 4029 * @arg @ref LL_MDMA_CHANNEL_0 4030 * @arg @ref LL_MDMA_CHANNEL_1 4031 * @arg @ref LL_MDMA_CHANNEL_2 4032 * @arg @ref LL_MDMA_CHANNEL_3 4033 * @arg @ref LL_MDMA_CHANNEL_4 4034 * @arg @ref LL_MDMA_CHANNEL_5 4035 * @arg @ref LL_MDMA_CHANNEL_6 4036 * @arg @ref LL_MDMA_CHANNEL_7 4037 * @arg @ref LL_MDMA_CHANNEL_8 4038 * @arg @ref LL_MDMA_CHANNEL_9 4039 * @arg @ref LL_MDMA_CHANNEL_10 4040 * @arg @ref LL_MDMA_CHANNEL_11 4041 * @arg @ref LL_MDMA_CHANNEL_12 4042 * @arg @ref LL_MDMA_CHANNEL_13 4043 * @arg @ref LL_MDMA_CHANNEL_14 4044 * @arg @ref LL_MDMA_CHANNEL_15 4045 * @retval None 4046 */ 4047 __STATIC_INLINE void LL_MDMA_EnableIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 4048 { 4049 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4050 4051 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE); 4052 } 4053 4054 /** 4055 * @brief Disable MDMA Channel x Transfer Error interrupt. 4056 * @rmtoll CCR TEIE LL_MDMA_DisableIT_TE 4057 * @param MDMAx MDMAx Instance 4058 * @param Channel This parameter can be one of the following values: 4059 * @arg @ref LL_MDMA_CHANNEL_0 4060 * @arg @ref LL_MDMA_CHANNEL_1 4061 * @arg @ref LL_MDMA_CHANNEL_2 4062 * @arg @ref LL_MDMA_CHANNEL_3 4063 * @arg @ref LL_MDMA_CHANNEL_4 4064 * @arg @ref LL_MDMA_CHANNEL_5 4065 * @arg @ref LL_MDMA_CHANNEL_6 4066 * @arg @ref LL_MDMA_CHANNEL_7 4067 * @arg @ref LL_MDMA_CHANNEL_8 4068 * @arg @ref LL_MDMA_CHANNEL_9 4069 * @arg @ref LL_MDMA_CHANNEL_10 4070 * @arg @ref LL_MDMA_CHANNEL_11 4071 * @arg @ref LL_MDMA_CHANNEL_12 4072 * @arg @ref LL_MDMA_CHANNEL_13 4073 * @arg @ref LL_MDMA_CHANNEL_14 4074 * @arg @ref LL_MDMA_CHANNEL_15 4075 * @retval None 4076 */ 4077 __STATIC_INLINE void LL_MDMA_DisableIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 4078 { 4079 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4080 4081 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE); 4082 } 4083 4084 /** 4085 * @brief Disable MDMA Channel x Channel Transfer Complete interrupt. 4086 * @rmtoll CCR CTCIE LL_MDMA_DisableIT_CTC 4087 * @param MDMAx MDMAx Instance 4088 * @param Channel This parameter can be one of the following values: 4089 * @arg @ref LL_MDMA_CHANNEL_0 4090 * @arg @ref LL_MDMA_CHANNEL_1 4091 * @arg @ref LL_MDMA_CHANNEL_2 4092 * @arg @ref LL_MDMA_CHANNEL_3 4093 * @arg @ref LL_MDMA_CHANNEL_4 4094 * @arg @ref LL_MDMA_CHANNEL_5 4095 * @arg @ref LL_MDMA_CHANNEL_6 4096 * @arg @ref LL_MDMA_CHANNEL_7 4097 * @arg @ref LL_MDMA_CHANNEL_8 4098 * @arg @ref LL_MDMA_CHANNEL_9 4099 * @arg @ref LL_MDMA_CHANNEL_10 4100 * @arg @ref LL_MDMA_CHANNEL_11 4101 * @arg @ref LL_MDMA_CHANNEL_12 4102 * @arg @ref LL_MDMA_CHANNEL_13 4103 * @arg @ref LL_MDMA_CHANNEL_14 4104 * @arg @ref LL_MDMA_CHANNEL_15 4105 * @retval None 4106 */ 4107 __STATIC_INLINE void LL_MDMA_DisableIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 4108 { 4109 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4110 4111 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE); 4112 } 4113 4114 /** 4115 * @brief Disable MDMA Channel x Block Repeat Transfer interrupt. 4116 * @rmtoll CCR BRTIE LL_MDMA_DisableIT_BRT 4117 * @param MDMAx MDMAx Instance 4118 * @param Channel This parameter can be one of the following values: 4119 * @arg @ref LL_MDMA_CHANNEL_0 4120 * @arg @ref LL_MDMA_CHANNEL_1 4121 * @arg @ref LL_MDMA_CHANNEL_2 4122 * @arg @ref LL_MDMA_CHANNEL_3 4123 * @arg @ref LL_MDMA_CHANNEL_4 4124 * @arg @ref LL_MDMA_CHANNEL_5 4125 * @arg @ref LL_MDMA_CHANNEL_6 4126 * @arg @ref LL_MDMA_CHANNEL_7 4127 * @arg @ref LL_MDMA_CHANNEL_8 4128 * @arg @ref LL_MDMA_CHANNEL_9 4129 * @arg @ref LL_MDMA_CHANNEL_10 4130 * @arg @ref LL_MDMA_CHANNEL_11 4131 * @arg @ref LL_MDMA_CHANNEL_12 4132 * @arg @ref LL_MDMA_CHANNEL_13 4133 * @arg @ref LL_MDMA_CHANNEL_14 4134 * @arg @ref LL_MDMA_CHANNEL_15 4135 * @retval None 4136 */ 4137 __STATIC_INLINE void LL_MDMA_DisableIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 4138 { 4139 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4140 4141 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE); 4142 } 4143 4144 /** 4145 * @brief Disable MDMA Channel x Block Transfer interrupt. 4146 * @rmtoll CCR BTIE LL_MDMA_DisableIT_BT 4147 * @param MDMAx MDMAx Instance 4148 * @param Channel This parameter can be one of the following values: 4149 * @arg @ref LL_MDMA_CHANNEL_0 4150 * @arg @ref LL_MDMA_CHANNEL_1 4151 * @arg @ref LL_MDMA_CHANNEL_2 4152 * @arg @ref LL_MDMA_CHANNEL_3 4153 * @arg @ref LL_MDMA_CHANNEL_4 4154 * @arg @ref LL_MDMA_CHANNEL_5 4155 * @arg @ref LL_MDMA_CHANNEL_6 4156 * @arg @ref LL_MDMA_CHANNEL_7 4157 * @arg @ref LL_MDMA_CHANNEL_8 4158 * @arg @ref LL_MDMA_CHANNEL_9 4159 * @arg @ref LL_MDMA_CHANNEL_10 4160 * @arg @ref LL_MDMA_CHANNEL_11 4161 * @arg @ref LL_MDMA_CHANNEL_12 4162 * @arg @ref LL_MDMA_CHANNEL_13 4163 * @arg @ref LL_MDMA_CHANNEL_14 4164 * @arg @ref LL_MDMA_CHANNEL_15 4165 * @retval None 4166 */ 4167 __STATIC_INLINE void LL_MDMA_DisableIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 4168 { 4169 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4170 4171 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE); 4172 } 4173 4174 /** 4175 * @brief Disable MDMA Channel x buffer transfer complete interrupt. 4176 * @rmtoll CCR TCIE LL_MDMA_DisableIT_TC 4177 * @param MDMAx MDMAx Instance 4178 * @param Channel This parameter can be one of the following values: 4179 * @arg @ref LL_MDMA_CHANNEL_0 4180 * @arg @ref LL_MDMA_CHANNEL_1 4181 * @arg @ref LL_MDMA_CHANNEL_2 4182 * @arg @ref LL_MDMA_CHANNEL_3 4183 * @arg @ref LL_MDMA_CHANNEL_4 4184 * @arg @ref LL_MDMA_CHANNEL_5 4185 * @arg @ref LL_MDMA_CHANNEL_6 4186 * @arg @ref LL_MDMA_CHANNEL_7 4187 * @arg @ref LL_MDMA_CHANNEL_8 4188 * @arg @ref LL_MDMA_CHANNEL_9 4189 * @arg @ref LL_MDMA_CHANNEL_10 4190 * @arg @ref LL_MDMA_CHANNEL_11 4191 * @arg @ref LL_MDMA_CHANNEL_12 4192 * @arg @ref LL_MDMA_CHANNEL_13 4193 * @arg @ref LL_MDMA_CHANNEL_14 4194 * @arg @ref LL_MDMA_CHANNEL_15 4195 * @retval None 4196 */ 4197 __STATIC_INLINE void LL_MDMA_DisableIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 4198 { 4199 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4200 4201 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE); 4202 } 4203 4204 /** 4205 * @brief Check if MDMA Channel x Transfer Error interrupt is enabled. 4206 * @rmtoll CCR TEIE LL_MDMA_IsEnabledIT_TE 4207 * @param MDMAx MDMAx Instance 4208 * @param Channel This parameter can be one of the following values: 4209 * @arg @ref LL_MDMA_CHANNEL_0 4210 * @arg @ref LL_MDMA_CHANNEL_1 4211 * @arg @ref LL_MDMA_CHANNEL_2 4212 * @arg @ref LL_MDMA_CHANNEL_3 4213 * @arg @ref LL_MDMA_CHANNEL_4 4214 * @arg @ref LL_MDMA_CHANNEL_5 4215 * @arg @ref LL_MDMA_CHANNEL_6 4216 * @arg @ref LL_MDMA_CHANNEL_7 4217 * @arg @ref LL_MDMA_CHANNEL_8 4218 * @arg @ref LL_MDMA_CHANNEL_9 4219 * @arg @ref LL_MDMA_CHANNEL_10 4220 * @arg @ref LL_MDMA_CHANNEL_11 4221 * @arg @ref LL_MDMA_CHANNEL_12 4222 * @arg @ref LL_MDMA_CHANNEL_13 4223 * @arg @ref LL_MDMA_CHANNEL_14 4224 * @arg @ref LL_MDMA_CHANNEL_15 4225 * @retval State of bit (1 or 0). 4226 */ 4227 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 4228 { 4229 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4230 4231 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE) == MDMA_CCR_TEIE) ? 1UL : 0UL); 4232 } 4233 4234 /** 4235 * @brief Check if MDMA Channel x Channel Transfer Complete interrupt is enabled. 4236 * @rmtoll CCR CTCIE LL_MDMA_IsEnabledIT_CTC 4237 * @param MDMAx MDMAx Instance 4238 * @param Channel This parameter can be one of the following values: 4239 * @arg @ref LL_MDMA_CHANNEL_0 4240 * @arg @ref LL_MDMA_CHANNEL_1 4241 * @arg @ref LL_MDMA_CHANNEL_2 4242 * @arg @ref LL_MDMA_CHANNEL_3 4243 * @arg @ref LL_MDMA_CHANNEL_4 4244 * @arg @ref LL_MDMA_CHANNEL_5 4245 * @arg @ref LL_MDMA_CHANNEL_6 4246 * @arg @ref LL_MDMA_CHANNEL_7 4247 * @arg @ref LL_MDMA_CHANNEL_8 4248 * @arg @ref LL_MDMA_CHANNEL_9 4249 * @arg @ref LL_MDMA_CHANNEL_10 4250 * @arg @ref LL_MDMA_CHANNEL_11 4251 * @arg @ref LL_MDMA_CHANNEL_12 4252 * @arg @ref LL_MDMA_CHANNEL_13 4253 * @arg @ref LL_MDMA_CHANNEL_14 4254 * @arg @ref LL_MDMA_CHANNEL_15 4255 * @retval State of bit (1 or 0). 4256 */ 4257 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 4258 { 4259 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4260 4261 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE) == MDMA_CCR_CTCIE) ? 1UL : 0UL); 4262 } 4263 4264 /** 4265 * @brief Check if MDMA Channel x Block Repeat Transfer complete interrupt is enabled. 4266 * @rmtoll CCR BRTIE LL_MDMA_IsEnabledIT_BRT 4267 * @param MDMAx MDMAx Instance 4268 * @param Channel This parameter can be one of the following values: 4269 * @arg @ref LL_MDMA_CHANNEL_0 4270 * @arg @ref LL_MDMA_CHANNEL_1 4271 * @arg @ref LL_MDMA_CHANNEL_2 4272 * @arg @ref LL_MDMA_CHANNEL_3 4273 * @arg @ref LL_MDMA_CHANNEL_4 4274 * @arg @ref LL_MDMA_CHANNEL_5 4275 * @arg @ref LL_MDMA_CHANNEL_6 4276 * @arg @ref LL_MDMA_CHANNEL_7 4277 * @arg @ref LL_MDMA_CHANNEL_8 4278 * @arg @ref LL_MDMA_CHANNEL_9 4279 * @arg @ref LL_MDMA_CHANNEL_10 4280 * @arg @ref LL_MDMA_CHANNEL_11 4281 * @arg @ref LL_MDMA_CHANNEL_12 4282 * @arg @ref LL_MDMA_CHANNEL_13 4283 * @arg @ref LL_MDMA_CHANNEL_14 4284 * @arg @ref LL_MDMA_CHANNEL_15 4285 * @retval State of bit (1 or 0). 4286 */ 4287 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 4288 { 4289 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4290 4291 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE) == MDMA_CCR_BRTIE) ? 1UL : 0UL); 4292 } 4293 4294 /** 4295 * @brief Check if MDMA Channel x Block Transfer interrupt is enabled. 4296 * @rmtoll CCR BTIE LL_MDMA_IsEnabledIT_BT 4297 * @param MDMAx MDMAx Instance 4298 * @param Channel This parameter can be one of the following values: 4299 * @arg @ref LL_MDMA_CHANNEL_0 4300 * @arg @ref LL_MDMA_CHANNEL_1 4301 * @arg @ref LL_MDMA_CHANNEL_2 4302 * @arg @ref LL_MDMA_CHANNEL_3 4303 * @arg @ref LL_MDMA_CHANNEL_4 4304 * @arg @ref LL_MDMA_CHANNEL_5 4305 * @arg @ref LL_MDMA_CHANNEL_6 4306 * @arg @ref LL_MDMA_CHANNEL_7 4307 * @arg @ref LL_MDMA_CHANNEL_8 4308 * @arg @ref LL_MDMA_CHANNEL_9 4309 * @arg @ref LL_MDMA_CHANNEL_10 4310 * @arg @ref LL_MDMA_CHANNEL_11 4311 * @arg @ref LL_MDMA_CHANNEL_12 4312 * @arg @ref LL_MDMA_CHANNEL_13 4313 * @arg @ref LL_MDMA_CHANNEL_14 4314 * @arg @ref LL_MDMA_CHANNEL_15 4315 * @retval State of bit (1 or 0). 4316 */ 4317 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 4318 { 4319 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4320 4321 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE) == MDMA_CCR_BTIE) ? 1UL : 0UL); 4322 } 4323 4324 /** 4325 * @brief Check if MDMA Channel x buffer transfer complete interrupt is enabled. 4326 * @rmtoll CCR TCIE LL_MDMA_IsEnabledIT_TC 4327 * @param MDMAx MDMAx Instance 4328 * @param Channel This parameter can be one of the following values: 4329 * @arg @ref LL_MDMA_CHANNEL_0 4330 * @arg @ref LL_MDMA_CHANNEL_1 4331 * @arg @ref LL_MDMA_CHANNEL_2 4332 * @arg @ref LL_MDMA_CHANNEL_3 4333 * @arg @ref LL_MDMA_CHANNEL_4 4334 * @arg @ref LL_MDMA_CHANNEL_5 4335 * @arg @ref LL_MDMA_CHANNEL_6 4336 * @arg @ref LL_MDMA_CHANNEL_7 4337 * @arg @ref LL_MDMA_CHANNEL_8 4338 * @arg @ref LL_MDMA_CHANNEL_9 4339 * @arg @ref LL_MDMA_CHANNEL_10 4340 * @arg @ref LL_MDMA_CHANNEL_11 4341 * @arg @ref LL_MDMA_CHANNEL_12 4342 * @arg @ref LL_MDMA_CHANNEL_13 4343 * @arg @ref LL_MDMA_CHANNEL_14 4344 * @arg @ref LL_MDMA_CHANNEL_15 4345 * @retval State of bit (1 or 0). 4346 */ 4347 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 4348 { 4349 uint32_t mdma_base_addr = (uint32_t)MDMAx; 4350 4351 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE) == MDMA_CCR_TCIE) ? 1UL : 0UL); 4352 } 4353 4354 /** 4355 * @} 4356 */ 4357 4358 #if defined(USE_FULL_LL_DRIVER) || defined(__rtems__) 4359 /** @defgroup MDMA_LL_EF_Init Initialization and de-initialization functions 4360 * @ingroup RTEMSBSPsARMSTM32H7 4361 * @{ 4362 */ 4363 4364 uint32_t LL_MDMA_Init(MDMA_TypeDef *MDMAx, uint32_t Channel, LL_MDMA_InitTypeDef *MDMA_InitStruct); 4365 uint32_t LL_MDMA_DeInit(MDMA_TypeDef *MDMAx, uint32_t Channel); 4366 void LL_MDMA_StructInit(LL_MDMA_InitTypeDef *MDMA_InitStruct); 4367 void LL_MDMA_CreateLinkNode(LL_MDMA_InitTypeDef *MDMA_InitStruct, LL_MDMA_LinkNodeTypeDef *pNode); 4368 void LL_MDMA_ConnectLinkNode(LL_MDMA_LinkNodeTypeDef *pPrevLinkNode, LL_MDMA_LinkNodeTypeDef *pNewLinkNode); 4369 void LL_MDMA_DisconnectNextLinkNode(LL_MDMA_LinkNodeTypeDef *pLinkNode); 4370 4371 /** 4372 * @} 4373 */ 4374 #endif /* USE_FULL_LL_DRIVER */ 4375 4376 /** 4377 * @} 4378 */ 4379 4380 /** 4381 * @} 4382 */ 4383 4384 #endif /* MDMA */ 4385 4386 /** 4387 * @} 4388 */ 4389 4390 #ifdef __cplusplus 4391 } 4392 #endif 4393 4394 #endif /* STM32H7xx_LL_MDMA_H */ 4395
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |