bf0_hal_dma.h
Header file of DMA HAL module.
- Author
- Sifli software development team 
- Attention
Defines
- 
DMA_SUPPORT_DYN_CHANNEL_ALLOC
- 
HAL_DMA_ERROR_NONE
- No error 
- 
HAL_DMA_ERROR_TE
- Transfer error 
- 
HAL_DMA_ERROR_NO_XFER
- Abort requested with no Xfer ongoing 
- 
HAL_DMA_ERROR_TIMEOUT
- Timeout error 
- 
HAL_DMA_ERROR_NOT_SUPPORTED
- Not supported mode 
- 
HAL_DMA_ERROR_SYNC
- DMAMUX sync overrun error 
- 
HAL_DMA_ERROR_REQGEN
- DMAMUX request generator overrun error 
- 
DMA_REQUEST_0
- 
DMA_REQUEST_1
- 
DMA_REQUEST_2
- 
DMA_REQUEST_3
- 
DMA_REQUEST_4
- 
DMA_REQUEST_5
- 
DMA_REQUEST_6
- 
DMA_REQUEST_7
- 
DMA_REQUEST_8
- 
DMA_REQUEST_9
- 
DMA_REQUEST_10
- 
DMA_REQUEST_11
- 
DMA_REQUEST_12
- 
DMA_REQUEST_13
- 
DMA_REQUEST_14
- 
DMA_REQUEST_15
- 
DMA_REQUEST_16
- 
DMA_REQUEST_17
- 
DMA_REQUEST_18
- 
DMA_REQUEST_19
- 
DMA_REQUEST_20
- 
DMA_REQUEST_21
- 
DMA_REQUEST_22
- 
DMA_REQUEST_23
- 
DMA_REQUEST_24
- 
DMA_REQUEST_25
- 
DMA_REQUEST_26
- 
DMA_REQUEST_27
- 
DMA_REQUEST_28
- 
DMA_REQUEST_29
- 
DMA_REQUEST_30
- 
DMA_REQUEST_31
- 
DMA_REQUEST_32
- 
DMA_REQUEST_33
- 
DMA_REQUEST_34
- 
DMA_REQUEST_35
- 
DMA_REQUEST_36
- 
DMA_REQUEST_37
- 
DMA_REQUEST_38
- 
DMA_REQUEST_39
- 
DMA_REQUEST_40
- 
DMA_REQUEST_41
- 
DMA_REQUEST_42
- 
DMA_REQUEST_43
- 
DMA_REQUEST_44
- 
DMA_REQUEST_45
- 
DMA_REQUEST_46
- 
DMA_REQUEST_47
- 
DMA_REQUEST_48
- 
DMA_REQUEST_49
- 
DMA_REQUEST_50
- 
DMA_REQUEST_51
- 
DMA_REQUEST_52
- 
DMA_REQUEST_53
- 
DMA_REQUEST_54
- 
DMA_REQUEST_55
- 
DMA_REQUEST_56
- 
DMA_REQUEST_57
- 
DMA_REQUEST_58
- 
DMA_REQUEST_59
- 
DMA_REQUEST_60
- 
DMA_REQUEST_61
- 
DMA_REQUEST_62
- 
DMA_REQUEST_63
- 
MAX_DMA_CHANNEL
- 
DMA_PERIPH_TO_MEMORY
- Peripheral to memory direction 
- 
DMA_MEMORY_TO_PERIPH
- Memory to peripheral direction 
- 
DMA_MEMORY_TO_MEMORY
- Memory to memory direction 
- 
DMA_PINC_ENABLE
- Peripheral increment mode Enable 
- 
DMA_PINC_DISABLE
- Peripheral increment mode Disable 
- 
DMA_MINC_ENABLE
- Memory increment mode Enable 
- 
DMA_MINC_DISABLE
- Memory increment mode Disable 
- 
DMA_PDATAALIGN_BYTE
- Peripheral data alignment : Byte 
- 
DMA_PDATAALIGN_HALFWORD
- Peripheral data alignment : HalfWord 
- 
DMA_PDATAALIGN_WORD
- Peripheral data alignment : Word 
- 
DMA_MDATAALIGN_BYTE
- Memory data alignment : Byte 
- 
DMA_MDATAALIGN_HALFWORD
- Memory data alignment : HalfWord 
- 
DMA_MDATAALIGN_WORD
- Memory data alignment : Word 
- 
DMA_NORMAL
- Normal mode 
- 
DMA_CIRCULAR
- Circular mode 
- 
DMA_PRIORITY_LOW
- Priority level : Low 
- 
DMA_PRIORITY_MEDIUM
- Priority level : Medium 
- 
DMA_PRIORITY_HIGH
- Priority level : High 
- 
DMA_PRIORITY_VERY_HIGH
- Priority level : Very_High 
- 
DMA_IT_TC
- 
DMA_IT_HT
- 
DMA_IT_TE
- 
DMA_FLAG_GL1
- 
DMA_FLAG_TC1
- 
DMA_FLAG_HT1
- 
DMA_FLAG_TE1
- 
DMA_FLAG_GL2
- 
DMA_FLAG_TC2
- 
DMA_FLAG_HT2
- 
DMA_FLAG_TE2
- 
DMA_FLAG_GL3
- 
DMA_FLAG_TC3
- 
DMA_FLAG_HT3
- 
DMA_FLAG_TE3
- 
DMA_FLAG_GL4
- 
DMA_FLAG_TC4
- 
DMA_FLAG_HT4
- 
DMA_FLAG_TE4
- 
DMA_FLAG_GL5
- 
DMA_FLAG_TC5
- 
DMA_FLAG_HT5
- 
DMA_FLAG_TE5
- 
DMA_FLAG_GL6
- 
DMA_FLAG_TC6
- 
DMA_FLAG_HT6
- 
DMA_FLAG_TE6
- 
DMA_FLAG_GL7
- 
DMA_FLAG_TC7
- 
DMA_FLAG_HT7
- 
DMA_FLAG_TE7
- 
__HAL_DMA_RESET_HANDLE_STATE(__HANDLE__)
- Reset DMA handle state. - 参数:
- __HANDLE__ – DMA handle 
 
- 返回值:
- None – 
 
- 
__HAL_DMA_ENABLE(__HANDLE__)
- Enable the specified DMA Channel. - 参数:
- __HANDLE__ – DMA handle 
 
- 返回值:
- None – 
 
- 
__HAL_DMA_DISABLE(__HANDLE__)
- Disable the specified DMA Channel. - 参数:
- __HANDLE__ – DMA handle 
 
- 返回值:
- None – 
 
- 
__HAL_DMA_GET_TC_FLAG_INDEX(__HANDLE__)
- Return the current DMA Channel transfer complete flag. - 参数:
- __HANDLE__ – DMA handle 
 
- 返回值:
- The – specified transfer complete flag index. 
 
- 
__HAL_DMA_GET_HT_FLAG_INDEX(__HANDLE__)
- Return the current DMA Channel half transfer complete flag. - 参数:
- __HANDLE__ – DMA handle 
 
- 返回值:
- The – specified half transfer complete flag index. 
 
- 
__HAL_DMA_GET_TE_FLAG_INDEX(__HANDLE__)
- Return the current DMA Channel transfer error flag. - 参数:
- __HANDLE__ – DMA handle 
 
- 返回值:
- The – specified transfer error flag index. 
 
- 
__HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)
- Return the current DMA Channel Global interrupt flag. - 参数:
- __HANDLE__ – DMA handle 
 
- 返回值:
- The – specified transfer error flag index. 
 
- 
__HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__)
- Get the DMA Channel pending flags. - 参数:
- __HANDLE__ – DMA handle 
- __FLAG__ – Get the specified flag. This parameter can be any combination of the following values: - DMA_FLAG_TCx: Transfer complete flag 
- DMA_FLAG_HTx: Half transfer complete flag 
- DMA_FLAG_TEx: Transfer error flag 
- DMA_FLAG_GLx: Global interrupt flag Where x can be from 1 to 7 to select the DMA Channel x flag. 
 
 
- 返回值:
- The – state of FLAG (SET or RESET). 
 
- 
__HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__)
- Clear the DMA Channel pending flags. - 参数:
- __HANDLE__ – DMA handle 
- __FLAG__ – specifies the flag to clear. This parameter can be any combination of the following values: - DMA_FLAG_TCx: Transfer complete flag 
- DMA_FLAG_HTx: Half transfer complete flag 
- DMA_FLAG_TEx: Transfer error flag 
- DMA_FLAG_GLx: Global interrupt flag Where x can be from 1 to 7 to select the DMA Channel x flag. 
 
 
- 返回值:
- None – 
 
- 
__HAL_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)
- Enable the specified DMA Channel interrupts. - 参数:
- __HANDLE__ – DMA handle 
- __INTERRUPT__ – specifies the DMA interrupt sources to be enabled or disabled. This parameter can be any combination of the following values: - DMA_IT_TC: Transfer complete interrupt mask 
- DMA_IT_HT: Half transfer complete interrupt mask 
- DMA_IT_TE: Transfer error interrupt mask 
 
 
- 返回值:
- None – 
 
- 
__HAL_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)
- Disable the specified DMA Channel interrupts. - 参数:
- __HANDLE__ – DMA handle 
- __INTERRUPT__ – specifies the DMA interrupt sources to be enabled or disabled. This parameter can be any combination of the following values: - DMA_IT_TC: Transfer complete interrupt mask 
- DMA_IT_HT: Half transfer complete interrupt mask 
- DMA_IT_TE: Transfer error interrupt mask 
 
 
- 返回值:
- None – 
 
- 
__HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
- Check whether the specified DMA Channel interrupt is enabled or not. - 参数:
- __HANDLE__ – DMA handle 
- __INTERRUPT__ – specifies the DMA interrupt source to check. This parameter can be one of the following values: - DMA_IT_TC: Transfer complete interrupt mask 
- DMA_IT_HT: Half transfer complete interrupt mask 
- DMA_IT_TE: Transfer error interrupt mask 
 
 
- 返回值:
- The – state of DMA_IT (SET or RESET). 
 
- 
__HAL_DMA_GET_COUNTER(__HANDLE__)
- Return the number of remaining data units in the current DMA Channel transfer. - 参数:
- __HANDLE__ – DMA handle 
 
- 返回值:
- The – number of remaining data units in the current DMA Channel transfer. 
 
- 
__HAL_DMA_SET_COUNTER(__HANDLE__, __DATA_COUNTS__)
- restart the current DMA Channel transfer. - 参数:
- __HANDLE__ – DMA handle 
- __DATA_COUNTS__ – number of data to transfer (0 to 2^16 - 1) 
 
- 返回值:
- None. – 
 
- 
__HAL_DMA_SET_CIRCLUAR_MODE(__HANDLE__, __CIRCLUAR_MODE__)
- Set circular mode for the current DMA Channel transfer. - 参数:
- __HANDLE__ – DMA handle 
- __CIRCLUAR_MODE__ – Circluar mode, 0 disable, 1 enable 
 
- 返回值:
- None. – 
 
- 
__HAL_DMA_CLEAR_CIRCLUAR_MODE(__HANDLE__, __CIRCLUAR_MODE__)
- Clear circular mode for the current DMA Channel transfer. - 参数:
- __HANDLE__ – DMA handle 
- __CIRCLUAR_MODE__ – Circluar mode, 0 disable, 1 enable 
 
- 返回值:
- None. – 
 
- 
IS_DMA_DIRECTION(DIRECTION)
- 
IS_DMA_BUFFER_SIZE(SIZE)
- 
IS_DMA_PERIPHERAL_INC_STATE(STATE)
- 
IS_DMA_MEMORY_INC_STATE(STATE)
- 
IS_DMA_ALL_REQUEST(REQUEST)
- 
IS_DMA_PERIPHERAL_DATA_SIZE(SIZE)
- 
IS_DMA_MEMORY_DATA_SIZE(SIZE)
- 
IS_DMA_MODE(MODE)
- 
IS_DMA_PRIORITY(PRIORITY)
- 
IS_DMA_ALL_INSTANCE(__INSTANCE__)
- 
DMA_1M_BOUNDARY_MASK
- 
DMA_1M_LEN
- 
IS_DMA_ACCROSS_1M_BOUNDARY(addr, size)
Typedefs
- 
typedef struct __DMA_HandleTypeDef DMA_HandleTypeDef
- DMA handle Structure definition. 
Enums
- 
enum HAL_DMA_StateTypeDef
- HAL DMA State structures definition. - Values: - 
enumerator HAL_DMA_STATE_RESET
- DMA not yet initialized or disabled 
 - 
enumerator HAL_DMA_STATE_READY
- DMA initialized and ready for use 
 - 
enumerator HAL_DMA_STATE_BUSY
- DMA process is ongoing 
 - 
enumerator HAL_DMA_STATE_TIMEOUT
- DMA timeout state 
 
- 
enumerator HAL_DMA_STATE_RESET
- 
enum HAL_DMA_LevelCompleteTypeDef
- HAL DMA Error Code structure definition. - Values: - 
enumerator HAL_DMA_FULL_TRANSFER
- Full transfer 
 - 
enumerator HAL_DMA_HALF_TRANSFER
- Half Transfer 
 
- 
enumerator HAL_DMA_FULL_TRANSFER
- 
enum HAL_DMA_CallbackIDTypeDef
- HAL DMA Callback ID structure definition. - Values: - 
enumerator HAL_DMA_XFER_CPLT_CB_ID
- Full transfer 
 - 
enumerator HAL_DMA_XFER_HALFCPLT_CB_ID
- Half transfer 
 - 
enumerator HAL_DMA_XFER_ERROR_CB_ID
- Error 
 - 
enumerator HAL_DMA_XFER_ABORT_CB_ID
- Abort 
 - 
enumerator HAL_DMA_XFER_ALL_CB_ID
- All 
 
- 
enumerator HAL_DMA_XFER_CPLT_CB_ID
Functions
- 
HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma)
- Initialize the DMA according to the specified parameters in the DMA_InitTypeDef and initialize the associated handle. - 参数:
- hdma – Pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
 
- 返回值:
- HAL – status 
 
- 
HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma)
- DeInitialize the DMA peripheral. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
 
- 返回值:
- HAL – status 
 
- 
HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t Counts)
- Start the DMA Transfer. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
- SrcAddress – The source memory Buffer address 
- DstAddress – The destination memory Buffer address 
- Counts – The counts of data transfer action 
 
- 返回值:
- HAL – status 
 
- 
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t Counts)
- Start the DMA Transfer with interrupt enabled. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
- SrcAddress – The source memory Buffer address 
- DstAddress – The destination memory Buffer address 
- Counts – The counts of data transfer action 
 
- 返回值:
- HAL – status 
 
- 
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
- Abort the DMA Transfer. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
 
- 返回值:
- HAL – status 
 
- 
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
- Aborts the DMA Transfer in Interrupt mode. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
 
- 返回值:
- HAL – status 
 
- 
HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
- Polling for transfer complete. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
- CompleteLevel – Specifies the DMA level complete. 
- Timeout – Timeout duration. 
 
- 返回值:
- HAL – status 
 
- 
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
- Handle DMA interrupt request. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
 
- 返回值:
- None – 
 
- 
void HAL_DMAC1_CH1_IRQHandler(void)
- 
void HAL_DMAC1_CH2_IRQHandler(void)
- 
void HAL_DMAC1_CH3_IRQHandler(void)
- 
void HAL_DMAC1_CH4_IRQHandler(void)
- 
void HAL_DMAC1_CH5_IRQHandler(void)
- 
void HAL_DMAC1_CH6_IRQHandler(void)
- 
void HAL_DMAC1_CH7_IRQHandler(void)
- 
void HAL_DMAC1_CH8_IRQHandler(void)
- 
void HAL_DMAC2_CH1_IRQHandler(void)
- 
void HAL_DMAC2_CH2_IRQHandler(void)
- 
void HAL_DMAC2_CH3_IRQHandler(void)
- 
void HAL_DMAC2_CH4_IRQHandler(void)
- 
void HAL_DMAC2_CH5_IRQHandler(void)
- 
void HAL_DMAC2_CH6_IRQHandler(void)
- 
void HAL_DMAC2_CH7_IRQHandler(void)
- 
void HAL_DMAC2_CH8_IRQHandler(void)
- 
HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (*pCallback)(DMA_HandleTypeDef *_hdma))
- Register callbacks. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
- CallbackID – User Callback identifer a HAL_DMA_CallbackIDTypeDef ENUM as parameter. 
- pCallback – pointer to private callbacsk function which has pointer to a DMA_HandleTypeDef structure as parameter. 
 
- 返回值:
- HAL – status 
 
- 
HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID)
- UnRegister callbacks. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
- CallbackID – User Callback identifer a HAL_DMA_CallbackIDTypeDef ENUM as parameter. 
 
- 返回值:
- HAL – status 
 
- 
void HAL_DMA_Select_Source(DMA_Channel_TypeDef *dma_chl, uint8_t request)
- 
HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma)
- Return the DMA hande state. - 参数:
- hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
 
- 返回值:
- HAL – state 
 
- 
uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma)
- Return the DMA error code. - 参数:
- hdma – : pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel. 
 
- 返回值:
- DMA – Error Code 
 
- 
struct dma_config
- 
struct DMA_InitTypeDef
- #include <bf0_hal_dma.h>DMA Configuration Structure definition. Public Members - 
uint32_t Request
- Specifies the request selected for the specified channel. This parameter can be a value of DMA request 
 - 
uint32_t Direction
- Specifies if the data will be transferred from memory to peripheral, from memory to memory or from peripheral to memory. This parameter can be a value of DMA Data transfer direction 
 - 
uint32_t PeriphInc
- Specifies whether the Peripheral address register should be incremented or not. This parameter can be a value of DMA Peripheral incremented mode 
 - 
uint32_t MemInc
- Specifies whether the memory address register should be incremented or not. This parameter can be a value of DMA Memory incremented mode 
 - 
uint32_t PeriphDataAlignment
- Specifies the Peripheral data width. This parameter can be a value of DMA Peripheral data size 
 - 
uint32_t MemDataAlignment
- Specifies the Memory data width. This parameter can be a value of DMA Memory data size 
 - 
uint32_t Mode
- Specifies the operation mode of the DMAy Channelx. This parameter can be a value of DMA mode - 备注 - The circular buffer mode cannot be used if the memory-to-memory data transfer is configured on the selected Channel 
 - 
uint32_t Priority
- Specifies the software priority for the DMAy Channelx. This parameter can be a value of DMA Priority level 
 - 
uint32_t BurstSize
- Specifies the burst size in non-m2m mode When BS>1, DMA will transfer for BS times for each request if left NDT is larger than BS, or else transfer for left NDT times. When BS=0 or 1, DMA will always do single transfer for each request. In memory-to-memory mode, BS is ignored. 
 - 
uint32_t IrqPrio
- Interrupt Priority 
 
- 
uint32_t Request
- 
struct __DMA_HandleTypeDef
- #include <bf0_hal_dma.h>DMA handle Structure definition. Public Members - 
DMA_Channel_TypeDef *Instance
- Register base address 
 - 
DMA_InitTypeDef Init
- DMA communication parameters 
 - 
HAL_LockTypeDef Lock
- DMA locking object 
 - 
HAL_DMA_StateTypeDef State
- DMA transfer state 
 - 
void *Parent
- Parent object state 
 - 
void (*XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
- DMA transfer complete callback 
 - 
void (*XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
- DMA Half transfer complete callback 
 - 
void (*XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
- DMA transfer error callback 
 - 
void (*XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
- DMA transfer abort callback 
 - 
uint32_t ErrorCode
- DMA Error code 
 - 
DMAC_TypeDef *DmaBaseAddress
- DMA Channel Base Address 
 - 
uint32_t ChannelIndex
- DMA Channel Index 
 - 
uint32_t LeftCounts
 - 
uint32_t TotalCounts
 - 
uint32_t TransCounts
 - 
uint32_t SrcAddress
 - 
uint32_t DstAddress
 - 
uint8_t SrcInc
 - 
uint8_t DstInc
 - 
uint8_t SrcWidth
- Src width, 0: 1 byte, 1: 2bytes, 2: 4bytes 
 - 
uint8_t DstWidth
- Dst width, 0: 1 byte, 1: 2bytes, 2: 4bytes 
 
- 
DMA_Channel_TypeDef *Instance
