stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c
Go to the documentation of this file.
1 
51 /* Includes ------------------------------------------------------------------*/
52 #include "stm32h7xx_hal.h"
53 
63 #ifdef HAL_DMA_MODULE_ENABLED
64 
65 /* Private types -------------------------------------------------------------*/
66 /* Private variables ---------------------------------------------------------*/
67 /* Private Constants ---------------------------------------------------------*/
68 /* Private macros ------------------------------------------------------------*/
69 /* Private functions ---------------------------------------------------------*/
74 static void DMA_MultiBufferSetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
75 
80 /* Exported functions ---------------------------------------------------------*/
81 
121 HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
122 {
123  HAL_StatusTypeDef status = HAL_OK;
124  __IO uint32_t *ifcRegister_Base; /* DMA Stream Interrupt Clear register */
125 
126  /* Check the parameters */
127  assert_param(IS_DMA_BUFFER_SIZE(DataLength));
129 
130  /* Memory-to-memory transfer not supported in double buffering mode */
131  if (hdma->Init.Direction == DMA_MEMORY_TO_MEMORY)
132  {
134  status = HAL_ERROR;
135  }
136  else
137  {
138  /* Process Locked */
139  __HAL_LOCK(hdma);
140 
141  if(HAL_DMA_STATE_READY == hdma->State)
142  {
143  /* Change DMA peripheral state */
144  hdma->State = HAL_DMA_STATE_BUSY;
145 
146  /* Initialize the error code */
148 
149  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
150  {
151  /* Enable the Double buffer mode */
152  ((DMA_Stream_TypeDef *)hdma->Instance)->CR |= DMA_SxCR_DBM;
153 
154  /* Configure DMA Stream destination address */
155  ((DMA_Stream_TypeDef *)hdma->Instance)->M1AR = SecondMemAddress;
156 
157  /* Calculate the interrupt clear flag register (IFCR) base address */
158  ifcRegister_Base = (uint32_t *)((uint32_t)(hdma->StreamBaseAddress + 8U));
159 
160  /* Clear all flags */
161  *ifcRegister_Base = 0x3FUL << (hdma->StreamIndex & 0x1FU);
162  }
163  else /* BDMA instance(s) */
164  {
165  /* Enable the Double buffer mode */
167 
168  /* Configure DMA Stream destination address */
169  ((BDMA_Channel_TypeDef *)hdma->Instance)->CM1AR = SecondMemAddress;
170 
171  /* Calculate the interrupt clear flag register (IFCR) base address */
172  ifcRegister_Base = (uint32_t *)((uint32_t)(hdma->StreamBaseAddress + 4U));
173 
174  /* Clear all flags */
175  *ifcRegister_Base = (BDMA_ISR_GIF0) << (hdma->StreamIndex & 0x1FU);
176  }
177 
178  if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
179  {
180  /* Configure the source, destination address and the data length */
181  DMA_MultiBufferSetConfig(hdma, SrcAddress, DstAddress, DataLength);
182 
183  /* Clear the DMAMUX synchro overrun flag */
185 
186  if(hdma->DMAmuxRequestGen != 0U)
187  {
188  /* Clear the DMAMUX request generator overrun flag */
190  }
191  }
192 
193  /* Enable the peripheral */
194  __HAL_DMA_ENABLE(hdma);
195  }
196  else
197  {
198  /* Set the error code to busy */
200 
201  /* Return error status */
202  status = HAL_ERROR;
203  }
204  }
205  return status;
206 }
207 
218 HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
219 {
220  HAL_StatusTypeDef status = HAL_OK;
221  __IO uint32_t *ifcRegister_Base; /* DMA Stream Interrupt Clear register */
222 
223  /* Check the parameters */
224  assert_param(IS_DMA_BUFFER_SIZE(DataLength));
226 
227  /* Memory-to-memory transfer not supported in double buffering mode */
228  if(hdma->Init.Direction == DMA_MEMORY_TO_MEMORY)
229  {
231  return HAL_ERROR;
232  }
233 
234  /* Process locked */
235  __HAL_LOCK(hdma);
236 
237  if(HAL_DMA_STATE_READY == hdma->State)
238  {
239  /* Change DMA peripheral state */
240  hdma->State = HAL_DMA_STATE_BUSY;
241 
242  /* Initialize the error code */
244 
245  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
246  {
247  /* Enable the Double buffer mode */
248  ((DMA_Stream_TypeDef *)hdma->Instance)->CR |= DMA_SxCR_DBM;
249 
250  /* Configure DMA Stream destination address */
251  ((DMA_Stream_TypeDef *)hdma->Instance)->M1AR = SecondMemAddress;
252 
253  /* Calculate the interrupt clear flag register (IFCR) base address */
254  ifcRegister_Base = (uint32_t *)((uint32_t)(hdma->StreamBaseAddress + 8U));
255 
256  /* Clear all flags */
257  *ifcRegister_Base = 0x3FUL << (hdma->StreamIndex & 0x1FU);
258  }
259  else /* BDMA instance(s) */
260  {
261  /* Enable the Double buffer mode */
263 
264  /* Configure DMA Stream destination address */
265  ((BDMA_Channel_TypeDef *)hdma->Instance)->CM1AR = SecondMemAddress;
266 
267  /* Calculate the interrupt clear flag register (IFCR) base address */
268  ifcRegister_Base = (uint32_t *)((uint32_t)(hdma->StreamBaseAddress + 4U));
269 
270  /* Clear all flags */
271  *ifcRegister_Base = (BDMA_ISR_GIF0) << (hdma->StreamIndex & 0x1FU);
272  }
273 
274  /* Configure the source, destination address and the data length */
275  DMA_MultiBufferSetConfig(hdma, SrcAddress, DstAddress, DataLength);
276 
277  if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
278  {
279  /* Clear the DMAMUX synchro overrun flag */
281 
282  if(hdma->DMAmuxRequestGen != 0U)
283  {
284  /* Clear the DMAMUX request generator overrun flag */
286  }
287  }
288 
289  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
290  {
291  /* Enable Common interrupts*/
293  ((DMA_Stream_TypeDef *)hdma->Instance)->FCR |= DMA_IT_FE;
294 
295  if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
296  {
297  /*Enable Half Transfer IT if corresponding Callback is set*/
298  ((DMA_Stream_TypeDef *)hdma->Instance)->CR |= DMA_IT_HT;
299  }
300  }
301  else /* BDMA instance(s) */
302  {
303  /* Enable Common interrupts*/
305 
306  if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
307  {
308  /*Enable Half Transfer IT if corresponding Callback is set*/
309  ((BDMA_Channel_TypeDef *)hdma->Instance)->CCR |= BDMA_CCR_HTIE;
310  }
311  }
312 
313  if(IS_DMA_DMAMUX_ALL_INSTANCE(hdma->Instance) != 0U) /* No DMAMUX available for BDMA1 */
314  {
315  /* Check if DMAMUX Synchronization is enabled*/
316  if((hdma->DMAmuxChannel->CCR & DMAMUX_CxCR_SE) != 0U)
317  {
318  /* Enable DMAMUX sync overrun IT*/
320  }
321 
322  if(hdma->DMAmuxRequestGen != 0U)
323  {
324  /* if using DMAMUX request generator, enable the DMAMUX request generator overrun IT*/
325  /* enable the request gen overrun IT*/
327  }
328  }
329 
330  /* Enable the peripheral */
331  __HAL_DMA_ENABLE(hdma);
332  }
333  else
334  {
335  /* Set the error code to busy */
337 
338  /* Return error status */
339  status = HAL_ERROR;
340  }
341  return status;
342 }
343 
359 {
360  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
361  {
362  if(memory == MEMORY0)
363  {
364  /* change the memory0 address */
365  ((DMA_Stream_TypeDef *)hdma->Instance)->M0AR = Address;
366  }
367  else
368  {
369  /* change the memory1 address */
370  ((DMA_Stream_TypeDef *)hdma->Instance)->M1AR = Address;
371  }
372  }
373  else /* BDMA instance(s) */
374  {
375  if(memory == MEMORY0)
376  {
377  /* change the memory0 address */
378  ((BDMA_Channel_TypeDef *)hdma->Instance)->CM0AR = Address;
379  }
380  else
381  {
382  /* change the memory1 address */
383  ((BDMA_Channel_TypeDef *)hdma->Instance)->CM1AR = Address;
384  }
385  }
386 
387  return HAL_OK;
388 }
389 
398 {
399  uint32_t syncSignalID = 0;
400  uint32_t syncPolarity = 0;
401 
402  /* Check the parameters */
407 
408  if(pSyncConfig->SyncEnable == ENABLE)
409  {
411 
412  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
413  {
415  }
416  else
417  {
419  }
420  syncSignalID = pSyncConfig->SyncSignalID;
421  syncPolarity = pSyncConfig->SyncPolarity;
422  }
423 
424  /*Check if the DMA state is ready */
425  if(hdma->State == HAL_DMA_STATE_READY)
426  {
427  /* Process Locked */
428  __HAL_LOCK(hdma);
429 
430  /* Disable the synchronization and event generation before applying a new config */
432 
433  /* Set the new synchronization parameters (and keep the request ID filled during the Init)*/
434  MODIFY_REG( hdma->DMAmuxChannel->CCR, \
435  (~DMAMUX_CxCR_DMAREQ_ID) , \
436  (syncSignalID << DMAMUX_CxCR_SYNC_ID_Pos) | \
437  ((pSyncConfig->RequestNumber - 1U) << DMAMUX_CxCR_NBREQ_Pos) | \
438  syncPolarity | ((uint32_t)pSyncConfig->SyncEnable << DMAMUX_CxCR_SE_Pos) | \
439  ((uint32_t)pSyncConfig->EventEnable << DMAMUX_CxCR_EGE_Pos));
440 
441  /* Process Locked */
442  __HAL_UNLOCK(hdma);
443 
444  return HAL_OK;
445  }
446  else
447  {
448  /* Set the error code to busy */
450 
451  /* Return error status */
452  return HAL_ERROR;
453  }
454 }
455 
466 {
467  HAL_StatusTypeDef status;
468  HAL_DMA_StateTypeDef temp_state = hdma->State;
469 
470  /* Check the parameters */
472 
473  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
474  {
475  assert_param(IS_DMA_DMAMUX_REQUEST_GEN_SIGNAL_ID(pRequestGeneratorConfig->SignalID));
476  }
477  else
478  {
480  }
481 
482 
483  assert_param(IS_DMAMUX_REQUEST_GEN_POLARITY(pRequestGeneratorConfig->Polarity));
485 
486  /* check if the DMA state is ready
487  and DMA is using a DMAMUX request generator block
488  */
489  if(hdma->DMAmuxRequestGen == 0U)
490  {
491  /* Set the error code to busy */
493 
494  /* error status */
495  status = HAL_ERROR;
496  }
497  else if(((hdma->DMAmuxRequestGen->RGCR & DMAMUX_RGxCR_GE) == 0U) && (temp_state == HAL_DMA_STATE_READY))
498  {
499  /* RequestGenerator must be disable prior to the configuration i.e GE bit is 0 */
500 
501  /* Process Locked */
502  __HAL_LOCK(hdma);
503 
504  /* Set the request generator new parameters */
505  hdma->DMAmuxRequestGen->RGCR = pRequestGeneratorConfig->SignalID | \
506  ((pRequestGeneratorConfig->RequestNumber - 1U) << DMAMUX_RGxCR_GNBREQ_Pos)| \
507  pRequestGeneratorConfig->Polarity;
508  /* Process Locked */
509  __HAL_UNLOCK(hdma);
510 
511  return HAL_OK;
512  }
513  else
514  {
515  /* Set the error code to busy */
517 
518  /* error status */
519  status = HAL_ERROR;
520  }
521 
522  return status;
523 }
524 
532 {
533  /* Check the parameters */
535 
536  /* check if the DMA state is ready
537  and DMA is using a DMAMUX request generator block */
538  if((hdma->State != HAL_DMA_STATE_RESET) && (hdma->DMAmuxRequestGen != 0U))
539  {
540  /* Enable the request generator*/
542 
543  return HAL_OK;
544  }
545  else
546  {
547  return HAL_ERROR;
548  }
549 }
550 
558 {
559  /* Check the parameters */
561 
562  /* check if the DMA state is ready
563  and DMA is using a DMAMUX request generator block */
564  if((hdma->State != HAL_DMA_STATE_RESET) && (hdma->DMAmuxRequestGen != 0U))
565  {
566  /* Disable the request generator*/
568 
569  return HAL_OK;
570  }
571  else
572  {
573  return HAL_ERROR;
574  }
575 }
576 
584 {
585  /* Check for DMAMUX Synchronization overrun */
586  if((hdma->DMAmuxChannelStatus->CSR & hdma->DMAmuxChannelStatusMask) != 0U)
587  {
588  /* Disable the synchro overrun interrupt */
590 
591  /* Clear the DMAMUX synchro overrun flag */
593 
594  /* Update error code */
595  hdma->ErrorCode |= HAL_DMA_ERROR_SYNC;
596 
597  if(hdma->XferErrorCallback != NULL)
598  {
599  /* Transfer error callback */
600  hdma->XferErrorCallback(hdma);
601  }
602  }
603 
604  if(hdma->DMAmuxRequestGen != 0)
605  {
606  /* if using a DMAMUX request generator block Check for DMAMUX request generator overrun */
607  if((hdma->DMAmuxRequestGenStatus->RGSR & hdma->DMAmuxRequestGenStatusMask) != 0U)
608  {
609  /* Disable the request gen overrun interrupt */
611 
612  /* Clear the DMAMUX request generator overrun flag */
614 
615  /* Update error code */
617 
618  if(hdma->XferErrorCallback != NULL)
619  {
620  /* Transfer error callback */
621  hdma->XferErrorCallback(hdma);
622  }
623  }
624  }
625 }
626 
627 
649 static void DMA_MultiBufferSetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
650 {
651  if(IS_DMA_STREAM_INSTANCE(hdma->Instance) != 0U) /* DMA1 or DMA2 instance */
652  {
653  /* Configure DMA Stream data length */
654  ((DMA_Stream_TypeDef *)hdma->Instance)->NDTR = DataLength;
655 
656  /* Peripheral to Memory */
657  if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH)
658  {
659  /* Configure DMA Stream destination address */
660  ((DMA_Stream_TypeDef *)hdma->Instance)->PAR = DstAddress;
661 
662  /* Configure DMA Stream source address */
663  ((DMA_Stream_TypeDef *)hdma->Instance)->M0AR = SrcAddress;
664  }
665  /* Memory to Peripheral */
666  else
667  {
668  /* Configure DMA Stream source address */
669  ((DMA_Stream_TypeDef *)hdma->Instance)->PAR = SrcAddress;
670 
671  /* Configure DMA Stream destination address */
672  ((DMA_Stream_TypeDef *)hdma->Instance)->M0AR = DstAddress;
673  }
674  }
675  else /* BDMA instance(s) */
676  {
677  /* Configure DMA Stream data length */
678  ((BDMA_Channel_TypeDef *)hdma->Instance)->CNDTR = DataLength;
679 
680  /* Peripheral to Memory */
681  if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH)
682  {
683  /* Configure DMA Stream destination address */
684  ((BDMA_Channel_TypeDef *)hdma->Instance)->CPAR = DstAddress;
685 
686  /* Configure DMA Stream source address */
687  ((BDMA_Channel_TypeDef *)hdma->Instance)->CM0AR = SrcAddress;
688  }
689  /* Memory to Peripheral */
690  else
691  {
692  /* Configure DMA Stream source address */
693  ((BDMA_Channel_TypeDef *)hdma->Instance)->CPAR = SrcAddress;
694 
695  /* Configure DMA Stream destination address */
696  ((BDMA_Channel_TypeDef *)hdma->Instance)->CM0AR = DstAddress;
697  }
698  }
699 }
700 
705 #endif /* HAL_DMA_MODULE_ENABLED */
706 
714 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
IS_DMAMUX_SYNC_REQUEST_NUMBER
#define IS_DMAMUX_SYNC_REQUEST_NUMBER(REQUEST_NUMBER)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:263
HAL_DMA_MuxRequestGeneratorConfigTypeDef::Polarity
uint32_t Polarity
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:87
assert_param
#define assert_param(expr)
Include module's header file.
Definition: stm32f407/stm32f407g-disc1/Inc/stm32f4xx_hal_conf.h:353
DMA_IT_HT
#define DMA_IT_HT
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:351
__DMA_HandleTypeDef::DMAmuxChannelStatusMask
uint32_t DMAmuxChannelStatusMask
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:171
__DMA_HandleTypeDef::DMAmuxChannelStatus
DMAMUX_ChannelStatus_TypeDef * DMAmuxChannelStatus
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:169
HAL_DMA_STATE_BUSY
@ HAL_DMA_STATE_BUSY
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:107
IS_BDMA_DMAMUX_REQUEST_GEN_SIGNAL_ID
#define IS_BDMA_DMAMUX_REQUEST_GEN_SIGNAL_ID(SIGNAL_ID)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:276
__IO
#define __IO
Definition: imxrt1050/imxrt1050-evkb/CMSIS/core_cm7.h:237
HAL_StatusTypeDef
HAL_StatusTypeDef
HAL Status structures definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:40
IS_DMA_STREAM_INSTANCE
#define IS_DMA_STREAM_INSTANCE(INSTANCE)
Definition: stm32h735xx.h:23880
DMAMUX_RGxCR_GE
#define DMAMUX_RGxCR_GE
Definition: stm32h735xx.h:9548
DMAMUX_ChannelStatus_TypeDef::CFR
__IO uint32_t CFR
Definition: stm32h735xx.h:646
HAL_DMA_ERROR_SYNC
#define HAL_DMA_ERROR_SYNC
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:206
DMA_Stream_TypeDef
DMA Controller.
Definition: stm32f407xx.h:346
IS_DMA_DMAMUX_REQUEST_GEN_SIGNAL_ID
#define IS_DMA_DMAMUX_REQUEST_GEN_SIGNAL_ID(SIGNAL_ID)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:275
DMAMUX_CxCR_SE
#define DMAMUX_CxCR_SE
Definition: stm32h735xx.h:9411
HAL_DMA_MuxSyncConfigTypeDef::SyncSignalID
uint32_t SyncSignalID
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:60
__DMA_HandleTypeDef::XferHalfCpltCallback
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:153
__DMA_HandleTypeDef
DMA handle Structure definition.
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:139
NULL
#define NULL
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/speex_resampler/thirdparty/resample.c:92
__DMA_HandleTypeDef::StreamIndex
uint32_t StreamIndex
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:167
IS_DMAMUX_REQUEST_GEN_POLARITY
#define IS_DMAMUX_REQUEST_GEN_POLARITY(POLARITY)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:280
__DMA_HandleTypeDef::StreamBaseAddress
uint32_t StreamBaseAddress
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:165
IS_DMA_DMAMUX_SYNC_SIGNAL_ID
#define IS_DMA_DMAMUX_SYNC_SIGNAL_ID(SIGNAL_ID)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:260
__DMA_HandleTypeDef::ErrorCode
__IO uint32_t ErrorCode
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:163
DMA_MEMORY_TO_MEMORY
#define DMA_MEMORY_TO_MEMORY
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:230
DMA_IT_TC
#define DMA_IT_TC
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:350
__HAL_DMA_ENABLE
#define __HAL_DMA_ENABLE(__HANDLE__)
Enable the specified DMA Stream.
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:418
DMAMUX_CxCR_DMAREQ_ID
#define DMAMUX_CxCR_DMAREQ_ID
Definition: stm32h735xx.h:9394
DMAMUX_CxCR_SOIE
#define DMAMUX_CxCR_SOIE
Definition: stm32h735xx.h:9405
BDMA_ISR_GIF0
#define BDMA_ISR_GIF0
Definition: stm32h735xx.h:6875
__DMA_HandleTypeDef::Init
DMA_InitTypeDef Init
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:143
HAL_ERROR
@ HAL_ERROR
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:43
__DMA_HandleTypeDef::DMAmuxChannel
DMAMUX_Channel_TypeDef * DMAmuxChannel
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:167
CLEAR_BIT
#define CLEAR_BIT(REG, BIT)
Definition: stm32f407/stm32f407g-disc1/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:214
DMAMUX_RequestGen_TypeDef::RGCR
__IO uint32_t RGCR
Definition: stm32h735xx.h:651
DMAMUX_CxCR_SE_Pos
#define DMAMUX_CxCR_SE_Pos
Definition: stm32h735xx.h:9409
__DMA_HandleTypeDef::State
__IO HAL_DMA_StateTypeDef State
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:147
HAL_DMAEx_EnableMuxRequestGenerator
HAL_StatusTypeDef HAL_DMAEx_EnableMuxRequestGenerator(DMA_HandleTypeDef *hdma)
HAL_DMA_MuxRequestGeneratorConfigTypeDef::RequestNumber
uint32_t RequestNumber
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:90
ENABLE
@ ENABLE
Definition: stm32f407/stm32f407g-disc1/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:194
HAL_DMA_MuxRequestGeneratorConfigTypeDef::SignalID
uint32_t SignalID
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:84
IS_DMA_DMAMUX_ALL_INSTANCE
#define IS_DMA_DMAMUX_ALL_INSTANCE(INSTANCE)
Definition: stm32h735xx.h:23844
IS_DMAMUX_REQUEST_GEN_REQUEST_NUMBER
#define IS_DMAMUX_REQUEST_GEN_REQUEST_NUMBER(REQUEST_NUMBER)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:278
BDMA_CCR_TCIE
#define BDMA_CCR_TCIE
Definition: stm32h735xx.h:7074
HAL_OK
@ HAL_OK
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:42
HAL_DMAEx_MultiBufferStart
HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
HAL_DMA_ERROR_BUSY
#define HAL_DMA_ERROR_BUSY
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:208
DMAMUX_ChannelStatus_TypeDef::CSR
__IO uint32_t CSR
Definition: stm32h735xx.h:645
BDMA_CCR_HTIE
#define BDMA_CCR_HTIE
Definition: stm32h735xx.h:7077
BDMA_Channel_TypeDef
Definition: stm32h735xx.h:623
HAL_DMA_MuxRequestGeneratorConfigTypeDef
HAL DMAMUX request generator parameters structure definition.
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:82
DMAMUX_CxCR_SYNC_ID_Pos
#define DMAMUX_CxCR_SYNC_ID_Pos
Definition: stm32h735xx.h:9425
DMA_IT_DME
#define DMA_IT_DME
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:353
IS_DMA_ALL_INSTANCE
#define IS_DMA_ALL_INSTANCE(INSTANCE)
Definition: stm32h735xx.h:23808
__HAL_LOCK
#define __HAL_LOCK(__HANDLE__)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:93
HAL_DMA_MuxSyncConfigTypeDef
HAL DMAMUX Synchronization configuration structure definition.
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:58
__DMA_HandleTypeDef::Instance
DMA_Stream_TypeDef * Instance
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:141
MODIFY_REG
#define MODIFY_REG(REG, CLEARMASK, SETMASK)
Definition: stm32f407/stm32f407g-disc1/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:224
BDMA_CCR_CIRC
#define BDMA_CCR_CIRC
Definition: stm32h735xx.h:7086
HAL_DMAEx_ChangeMemory
HAL_StatusTypeDef HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef *hdma, uint32_t Address, HAL_DMA_MemoryTypeDef memory)
IS_DMAMUX_SYNC_POLARITY
#define IS_DMAMUX_SYNC_POLARITY(POLARITY)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:265
DMA_IT_FE
#define DMA_IT_FE
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:354
HAL_DMAEx_ConfigMuxRequestGenerator
HAL_StatusTypeDef HAL_DMAEx_ConfigMuxRequestGenerator(DMA_HandleTypeDef *hdma, HAL_DMA_MuxRequestGeneratorConfigTypeDef *pRequestGeneratorConfig)
HAL_DMA_MemoryTypeDef
HAL_DMA_MemoryTypeDef
HAL DMA Memory definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:48
DMA_SxCR_DBM
#define DMA_SxCR_DBM
Definition: stm32f407xx.h:5825
IS_DMA_BUFFER_SIZE
#define IS_DMA_BUFFER_SIZE(SIZE)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:735
__HAL_UNLOCK
#define __HAL_UNLOCK(__HANDLE__)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:105
HAL_DMA_MuxSyncConfigTypeDef::SyncEnable
FunctionalState SyncEnable
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:66
DMAMUX_RequestGenStatus_TypeDef::RGSR
__IO uint32_t RGSR
Definition: stm32h735xx.h:656
HAL_DMA_ERROR_REQGEN
#define HAL_DMA_ERROR_REQGEN
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:207
HAL_DMAEx_MultiBufferStart_IT
HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
HAL_DMA_MuxSyncConfigTypeDef::RequestNumber
uint32_t RequestNumber
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:73
IS_DMAMUX_SYNC_EVENT
#define IS_DMAMUX_SYNC_EVENT(EVENT)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:272
__DMA_HandleTypeDef::DMAmuxRequestGenStatusMask
uint32_t DMAmuxRequestGenStatusMask
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:178
__DMA_HandleTypeDef::DMAmuxRequestGen
DMAMUX_RequestGen_TypeDef * DMAmuxRequestGen
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:174
DMAMUX_RGxCR_OIE
#define DMAMUX_RGxCR_OIE
Definition: stm32h735xx.h:9545
HAL_DMA_STATE_RESET
@ HAL_DMA_STATE_RESET
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:105
HAL_DMA_MuxSyncConfigTypeDef::SyncPolarity
uint32_t SyncPolarity
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:63
HAL_DMA_ERROR_NOT_SUPPORTED
#define HAL_DMA_ERROR_NOT_SUPPORTED
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:193
HAL_DMAEx_DisableMuxRequestGenerator
HAL_StatusTypeDef HAL_DMAEx_DisableMuxRequestGenerator(DMA_HandleTypeDef *hdma)
DMAMUX_RequestGenStatus_TypeDef::RGCFR
__IO uint32_t RGCFR
Definition: stm32h735xx.h:657
HAL_DMAEx_ConfigMuxSync
HAL_StatusTypeDef HAL_DMAEx_ConfigMuxSync(DMA_HandleTypeDef *hdma, HAL_DMA_MuxSyncConfigTypeDef *pSyncConfig)
DMA_MEMORY_TO_PERIPH
#define DMA_MEMORY_TO_PERIPH
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:229
HAL_DMAEx_MUX_IRQHandler
void HAL_DMAEx_MUX_IRQHandler(DMA_HandleTypeDef *hdma)
DMAMUX_CxCR_EGE_Pos
#define DMAMUX_CxCR_EGE_Pos
Definition: stm32h735xx.h:9406
DMA_InitTypeDef::Direction
uint32_t Direction
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:54
IS_BDMA_DMAMUX_SYNC_SIGNAL_ID
#define IS_BDMA_DMAMUX_SYNC_SIGNAL_ID(SIGNAL_ID)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:261
__DMA_HandleTypeDef::XferM1HalfCpltCallback
void(* XferM1HalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:157
HAL_DMA_ERROR_PARAM
#define HAL_DMA_ERROR_PARAM
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:191
DMAMUX_Channel_TypeDef::CCR
__IO uint32_t CCR
Definition: stm32h735xx.h:640
MEMORY0
@ MEMORY0
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:50
HAL_DMA_ERROR_NONE
#define HAL_DMA_ERROR_NONE
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:186
HAL_DMA_StateTypeDef
HAL_DMA_StateTypeDef
HAL DMA State structures definition.
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:103
DMAMUX_RGxCR_GNBREQ_Pos
#define DMAMUX_RGxCR_GNBREQ_Pos
Definition: stm32h735xx.h:9554
DMAMUX_CxCR_NBREQ_Pos
#define DMAMUX_CxCR_NBREQ_Pos
Definition: stm32h735xx.h:9417
HAL_DMA_MuxSyncConfigTypeDef::EventEnable
FunctionalState EventEnable
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:70
BDMA_CCR_TEIE
#define BDMA_CCR_TEIE
Definition: stm32h735xx.h:7080
IS_DMAMUX_SYNC_STATE
#define IS_DMAMUX_SYNC_STATE(SYNC)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h:270
BDMA_CCR_DBM
#define BDMA_CCR_DBM
Definition: stm32h735xx.h:7117
DMA_IT_TE
#define DMA_IT_TE
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:352
DMAMUX_CxCR_EGE
#define DMAMUX_CxCR_EGE
Definition: stm32h735xx.h:9408
__DMA_HandleTypeDef::DMAmuxRequestGenStatus
DMAMUX_RequestGenStatus_TypeDef * DMAmuxRequestGenStatus
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h:176
__DMA_HandleTypeDef::XferErrorCallback
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:159
HAL_DMA_STATE_READY
@ HAL_DMA_STATE_READY
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:106


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