EFM32 Wonder Gecko Software Documentation
efm32wg-doc-5.1.2
|
Direct memory access (DMA) API.
Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no obligation to support this Software. Silicon Labs is providing the Software "AS IS", with no express or implied warranties of any kind, including, but not limited to, any implied warranties of merchantability or fitness for any particular purpose or warranties against infringement of any proprietary rights of a third party.
Silicon Labs will not be liable for any consequential, incidental, or special damages, or any other relief, or for any claim by any third party, arising from your use of this Software.
Definition in file em_dma.h.
Go to the source code of this file.
Data Structures | |
struct | DMA_CB_TypeDef |
Callback structure that can be used to define DMA complete actions. More... | |
struct | DMA_CfgChannel_TypeDef |
struct | DMA_CfgDescr_TypeDef |
struct | DMA_CfgDescrSGAlt_TypeDef |
struct | DMA_CfgLoop_TypeDef |
struct | DMA_CfgRect_TypeDef |
struct | DMA_Init_TypeDef |
Typedefs | |
typedef void(* | DMA_FuncPtr_TypeDef) (unsigned int channel, bool primary, void *user) |
DMA interrupt callback function pointer. More... | |
Enumerations | |
enum | DMA_ArbiterConfig_TypeDef { dmaArbitrate1 = _DMA_CTRL_R_POWER_1, dmaArbitrate2 = _DMA_CTRL_R_POWER_2, dmaArbitrate4 = _DMA_CTRL_R_POWER_4, dmaArbitrate8 = _DMA_CTRL_R_POWER_8, dmaArbitrate16 = _DMA_CTRL_R_POWER_16, dmaArbitrate32 = _DMA_CTRL_R_POWER_32, dmaArbitrate64 = _DMA_CTRL_R_POWER_64, dmaArbitrate128 = _DMA_CTRL_R_POWER_128, dmaArbitrate256 = _DMA_CTRL_R_POWER_256, dmaArbitrate512 = _DMA_CTRL_R_POWER_512, dmaArbitrate1024 = _DMA_CTRL_R_POWER_1024 } |
enum | DMA_CycleCtrl_TypeDef { dmaCycleCtrlBasic = _DMA_CTRL_CYCLE_CTRL_BASIC, dmaCycleCtrlAuto = _DMA_CTRL_CYCLE_CTRL_AUTO, dmaCycleCtrlPingPong = _DMA_CTRL_CYCLE_CTRL_PINGPONG, dmaCycleCtrlMemScatterGather = _DMA_CTRL_CYCLE_CTRL_MEM_SCATTER_GATHER, dmaCycleCtrlPerScatterGather = _DMA_CTRL_CYCLE_CTRL_PER_SCATTER_GATHER } |
enum | DMA_DataInc_TypeDef { dmaDataInc1 = _DMA_CTRL_SRC_INC_BYTE, dmaDataInc2 = _DMA_CTRL_SRC_INC_HALFWORD, dmaDataInc4 = _DMA_CTRL_SRC_INC_WORD, dmaDataIncNone = _DMA_CTRL_SRC_INC_NONE } |
enum | DMA_DataSize_TypeDef { dmaDataSize1 = _DMA_CTRL_SRC_SIZE_BYTE, dmaDataSize2 = _DMA_CTRL_SRC_SIZE_HALFWORD, dmaDataSize4 = _DMA_CTRL_SRC_SIZE_WORD } |
Functions | |
void | DMA_ActivateAuto (unsigned int channel, bool primary, void *dst, const void *src, unsigned int nMinus1) |
Activate DMA auto-request cycle (used for memory-memory transfers). More... | |
void | DMA_ActivateBasic (unsigned int channel, bool primary, bool useBurst, void *dst, const void *src, unsigned int nMinus1) |
Activate DMA basic cycle (used for memory-peripheral transfers). More... | |
void | DMA_ActivatePingPong (unsigned int channel, bool useBurst, void *primDst, const void *primSrc, unsigned int primNMinus1, void *altDst, const void *altSrc, unsigned int altNMinus1) |
Activate DMA ping-pong cycle (used for memory-peripheral transfers). More... | |
void | DMA_ActivateScatterGather (unsigned int channel, bool useBurst, DMA_DESCRIPTOR_TypeDef *altDescr, unsigned int count) |
Activate DMA scatter-gather cycle (used for either memory-peripheral or memory-memory transfers). More... | |
void | DMA_CfgChannel (unsigned int channel, DMA_CfgChannel_TypeDef *cfg) |
Configure a DMA channel. More... | |
void | DMA_CfgDescr (unsigned int channel, bool primary, DMA_CfgDescr_TypeDef *cfg) |
Configure DMA descriptor for auto-request, basic or ping-pong DMA cycles. More... | |
void | DMA_CfgDescrScatterGather (DMA_DESCRIPTOR_TypeDef *descr, unsigned int indx, DMA_CfgDescrSGAlt_TypeDef *cfg) |
Configure an alternate DMA descriptor for use with scatter-gather DMA cycles. More... | |
void | DMA_CfgLoop (unsigned int channel, DMA_CfgLoop_TypeDef *cfg) |
Configure DMA channel for Loop mode or 2D transfer. More... | |
void | DMA_CfgRect (unsigned int channel, DMA_CfgRect_TypeDef *cfg) |
Configure DMA channel 2D transfer properties. More... | |
void | DMA_ChannelEnable (unsigned int channel, bool enable) |
Enable or disable a DMA channel. More... | |
bool | DMA_ChannelEnabled (unsigned int channel) |
Check if DMA channel is enabled. More... | |
void | DMA_ChannelRequestEnable (unsigned int channel, bool enable) |
Enable or disable a DMA channel request. More... | |
void | DMA_Init (DMA_Init_TypeDef *init) |
Initializes DMA controller. More... | |
__STATIC_INLINE void | DMA_IntClear (uint32_t flags) |
Clear one or more pending DMA interrupts. More... | |
__STATIC_INLINE void | DMA_IntDisable (uint32_t flags) |
Disable one or more DMA interrupts. More... | |
__STATIC_INLINE void | DMA_IntEnable (uint32_t flags) |
Enable one or more DMA interrupts. More... | |
__STATIC_INLINE uint32_t | DMA_IntGet (void) |
Get pending DMA interrupt flags. More... | |
__STATIC_INLINE uint32_t | DMA_IntGetEnabled (void) |
Get enabled and pending DMA interrupt flags. Useful for handling more interrupt sources in the same interrupt handler. More... | |
__STATIC_INLINE void | DMA_IntSet (uint32_t flags) |
Set one or more pending DMA interrupts. More... | |
void | DMA_IRQHandler (void) |
Interrupt handler for DMA cycle completion handling. More... | |
void | DMA_RefreshPingPong (unsigned int channel, bool primary, bool useBurst, void *dst, const void *src, unsigned int nMinus1, bool stop) |
Refresh a descriptor used in a DMA ping-pong cycle. More... | |
void | DMA_Reset (void) |
Reset the DMA controller. More... | |
__STATIC_INLINE void | DMA_ResetLoop (unsigned int channel) |
Clear Loop configuration for channel. More... | |
__STATIC_INLINE void | DMA_ResetRect (unsigned int channel) |
Clear Rect/2D DMA configuration for channel. More... | |