bf0_hal_dma.h
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
-
DMA_REQUEST_64
-
DMA_REQUEST_65
-
DMA_REQUEST_66
-
DMA_REQUEST_67
-
DMA_REQUEST_68
-
DMA_REQUEST_69
-
DMA_REQUEST_70
-
DMA_REQUEST_71
-
DMA_REQUEST_72
-
DMA_REQUEST_73
-
DMA_REQUEST_74
-
DMA_REQUEST_75
-
DMA_REQUEST_76
-
DMA_REQUEST_77
-
DMA_REQUEST_78
-
DMA_REQUEST_79
-
DMA_REQUEST_80
-
DMA_REQUEST_81
-
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_IT_LC
-
DMA_FLAG_GL1
-
DMA_FLAG_TC1
-
DMA_FLAG_HT1
-
DMA_FLAG_TE1
-
DMA_FLAG_LC1
-
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
-
DMA_TRIG_HIGH
DMA_flag_definitions
-
DMA_TRIG_LOW
-
DMA_TRIG_LEVEL
-
DMA_TRIG_EDGE
-
__HAL_DMA_RESET_HANDLE_STATE(__HANDLE__)
Reset DMA handle state.
- Parameters:
__HANDLE__ – DMA handle
- Return values:
None –
-
__HAL_DMA_ENABLE(__HANDLE__)
Enable the specified DMA Channel.
- Parameters:
__HANDLE__ – DMA handle
- Return values:
None –
-
__HAL_DMA_DISABLE(__HANDLE__)
Disable the specified DMA Channel.
- Parameters:
__HANDLE__ – DMA handle
- Return values:
None –
-
__HAL_DMA_GET_TC_FLAG_INDEX(__HANDLE__)
Return the current DMA Channel transfer complete flag.
- Parameters:
__HANDLE__ – DMA handle
- Return values:
The – specified transfer complete flag index.
-
__HAL_DMA_GET_HT_FLAG_INDEX(__HANDLE__)
Return the current DMA Channel half transfer complete flag.
- Parameters:
__HANDLE__ – DMA handle
- Return values:
The – specified half transfer complete flag index.
-
__HAL_DMA_GET_TE_FLAG_INDEX(__HANDLE__)
Return the current DMA Channel transfer error flag.
- Parameters:
__HANDLE__ – DMA handle
- Return values:
The – specified transfer error flag index.
-
__HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)
Return the current DMA Channel Global interrupt flag.
- Parameters:
__HANDLE__ – DMA handle
- Return values:
The – specified transfer error flag index.
-
__HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__)
Get the DMA Channel pending flags.
- Parameters:
__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.
- Return values:
The – state of FLAG (SET or RESET).
-
__HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the DMA Channel pending flags.
- Parameters:
__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.
- Return values:
None –
-
__HAL_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the specified DMA Channel interrupts.
- Parameters:
__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
- Return values:
None –
-
__HAL_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disable the specified DMA Channel interrupts.
- Parameters:
__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
- Return values:
None –
-
__HAL_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
Check whether the specified DMA Channel interrupt is enabled or not.
- Parameters:
__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
- Return values:
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.
- Parameters:
__HANDLE__ – DMA handle
- Return values:
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.
- Parameters:
__HANDLE__ – DMA handle
__DATA_COUNTS__ – number of data to transfer (0 to 2^16 - 1)
- Return values:
None. –
-
__HAL_DMA_SET_CIRCLUAR_MODE(__HANDLE__, __CIRCLUAR_MODE__)
Set circular mode for the current DMA Channel transfer.
- Parameters:
__HANDLE__ – DMA handle
__CIRCLUAR_MODE__ – Circluar mode, 0 disable, 1 enable
- Return values:
None. –
-
__HAL_DMA_CLEAR_CIRCLUAR_MODE(__HANDLE__, __CIRCLUAR_MODE__)
Clear circular mode for the current DMA Channel transfer.
- Parameters:
__HANDLE__ – DMA handle
__CIRCLUAR_MODE__ – Circluar mode, 0 disable, 1 enable
- Return values:
None. –
-
IS_DMA_DIRECTION(DIRECTION)
-
DMA1_BUFFER_SIZE
-
DMA_MAX_TRANSFER_SIZE(HANDLE)
-
IS_DMA_BUFFER_SIZE(HANDLE, 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_ACROSS_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.
Note
hdma->Init.Priority is not programmed into CCR as is, it is adjusted by the transfer direction first, see DMA_InitTypeDef::Priority.
- Parameters:
hdma – Pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
HAL – status
-
HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma)
DeInitialize the DMA peripheral.
- Parameters:
hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
HAL – status
-
HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t Counts)
Start the DMA Transfer.
- Parameters:
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
- Return values:
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.
- Parameters:
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
- Return values:
HAL – status
-
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Abort the DMA Transfer.
- Parameters:
hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
HAL – status
-
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
- Parameters:
hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
HAL – status
-
HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
Polling for transfer complete.
- Parameters:
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.
- Return values:
HAL – status
-
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
Handle DMA interrupt request.
- Parameters:
hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
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.
- Parameters:
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.
- Return values:
HAL – status
-
HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID)
UnRegister callbacks.
- Parameters:
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.
- Return values:
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.
- Parameters:
hdma – pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
HAL – state
-
uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma)
Return the DMA error code.
- Parameters:
hdma – : pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
DMA – Error Code
-
HAL_StatusTypeDef HAL_DMA_AllocChannel(DMA_HandleTypeDef *hdma)
Allocates a DMA channel dynamically.
- Parameters:
hdma – Pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
HAL – status
-
HAL_StatusTypeDef HAL_DMA_FreeChannel(DMA_HandleTypeDef *hdma)
Frees a previously allocated DMA channel.
- Parameters:
hdma – Pointer to a DMA_HandleTypeDef structure that contains the configuration information for the specified DMA Channel.
- Return values:
HAL – status
-
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
Note
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
Note
The requested value is not programmed into CCR as is, it is adjusted by the transfer direction first, so that every peripheral transfer stays strictly above memory-to-memory ones:
memory-to-memory transfers always use DMA_PRIORITY_LOW;
otherwise the level is shifted up by one and saturates at DMA_PRIORITY_VERY_HIGH, i.e. LOW->MEDIUM, MEDIUM->HIGH, HIGH/VERY_HIGH->VERY_HIGH, which keeps the relative order between peripheral transfers. DMA_PRIORITY_HIGH and DMA_PRIORITY_VERY_HIGH are therefore not distinguishable for peripheral transfers. The same adjustment is applied to the Control word of each node prepared by HAL_DMA_PrepareMultiple().
-
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, the value is left-shifted by 2 bits
-
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