![]() |
S32 SDK
|
#include "device_registers.h"
#include "edma_hal.h"
#include "dmamux_hal.h"
#include "clock_manager.h"
#include "status.h"
#include <stddef.h>
Go to the source code of this file.
Data Structures | |
struct | edma_user_config_t |
The user configuration structure for the eDMA driver. More... | |
struct | edma_chn_state_t |
Data structure for the eDMA channel state. Implements : edma_chn_state_t_Class. More... | |
struct | edma_channel_config_t |
The user configuration structure for the an eDMA driver channel. More... | |
struct | edma_scatter_gather_list_t |
Data structure for configuring a discrete memory transfer. Implements : edma_scatter_gather_list_t_Class. More... | |
struct | edma_state_t |
Runtime state structure for the eDMA driver. More... | |
struct | edma_loop_transfer_config_t |
eDMA loop transfer configuration. More... | |
struct | edma_transfer_config_t |
eDMA transfer size configuration. More... | |
struct | edma_software_tcd_t |
eDMA TCD Implements : edma_software_tcd_t_Class More... | |
Macros | |
#define | STCD_SIZE(number) (((number) * 32U) - 1U) |
Macro for the memory size needed for the software TCD. More... | |
#define | STCD_ADDR(address) (((uint32_t)address + 31UL) & ~0x1FUL) |
#define | EDMA_ERR_LSB_MASK 1U |
Macro for accessing the least significant bit of the ERR register. More... | |
Typedefs | |
typedef void(* | edma_callback_t) (void *parameter, edma_chn_status_t status) |
Definition for the eDMA channel callback function. More... | |
Enumerations | |
enum | edma_chn_status_t { EDMA_CHN_NORMAL = 0U, EDMA_CHN_IDLE, EDMA_CHN_ERROR } |
Channel status for eDMA channel. More... | |
enum | edma_transfer_type_t { EDMA_TRANSFER_PERIPH2MEM, EDMA_TRANSFER_MEM2PERIPH, EDMA_TRANSFER_MEM2MEM } |
A type for the DMA transfer. Implements : edma_transfer_type_t_Class. More... | |
Functions | |
eDMA peripheral driver module level functions | |
status_t | EDMA_DRV_Init (edma_state_t *edmaState, const edma_user_config_t *userConfig, edma_chn_state_t *const chnStateArray[], const edma_channel_config_t *const chnConfigArray[], uint8_t chnCount) |
Initializes the eDMA module. More... | |
status_t | EDMA_DRV_Deinit (void) |
De-initializes the eDMA module. More... | |
eDMA peripheral driver channel management functions | |
status_t | EDMA_DRV_ChannelInit (edma_chn_state_t *edmaChannelState, const edma_channel_config_t *edmaChannelConfig) |
Initializes an eDMA channel. More... | |
status_t | EDMA_DRV_ReleaseChannel (uint8_t channel) |
Releases an eDMA channel. More... | |
eDMA peripheral driver transfer setup functions | |
void | EDMA_DRV_PushConfigToReg (uint8_t channel, const edma_transfer_config_t *tcd) |
Copies the channel configuration to the TCD registers. More... | |
void | EDMA_DRV_PushConfigToSTCD (const edma_transfer_config_t *config, edma_software_tcd_t *stcd) |
Copies the channel configuration to the software TCD structure. More... | |
status_t | EDMA_DRV_ConfigSingleBlockTransfer (uint8_t channel, edma_transfer_type_t type, uint32_t srcAddr, uint32_t destAddr, edma_transfer_size_t transferSize, uint32_t dataBufferSize) |
Configures a simple single block data transfer with DMA. More... | |
status_t | EDMA_DRV_ConfigLoopTransfer (uint8_t channel, const edma_transfer_config_t *transferConfig) |
Configures the DMA transfer in loop mode. More... | |
status_t | EDMA_DRV_ConfigScatterGatherTransfer (uint8_t channel, edma_software_tcd_t *stcd, edma_transfer_size_t transferSize, uint32_t bytesOnEachRequest, const edma_scatter_gather_list_t *srcList, const edma_scatter_gather_list_t *destList, uint8_t tcdCount) |
Configures the DMA transfer in a scatter-gather mode. More... | |
eDMA Peripheral driver channel operation functions | |
status_t | EDMA_DRV_StartChannel (uint8_t channel) |
Starts an eDMA channel. More... | |
status_t | EDMA_DRV_StopChannel (uint8_t channel) |
Stops the eDMA channel. More... | |
eDMA Peripheral callback and interrupt functions | |
status_t | EDMA_DRV_InstallCallback (uint8_t channel, edma_callback_t callback, void *parameter) |
Registers the callback function and the parameter for eDMA channel. More... | |
eDMA Peripheral driver miscellaneous functions | |
edma_chn_status_t | EDMA_DRV_GetChannelStatus (uint8_t channel) |
Gets the eDMA channel status. More... | |
Variables | |
DMA_Type *const | g_edmaBase [DMA_INSTANCE_COUNT] |
Array for the eDMA module register base address. More... | |
DMAMUX_Type *const | g_dmamuxBase [DMAMUX_INSTANCE_COUNT] |
Array for DMAMUX module register base address. More... | |
const IRQn_Type | g_edmaIrqId [FEATURE_CHANNEL_INTERRUPT_LINES] |
Array for eDMA channel interrupt vector number. More... | |
const clock_names_t | g_edmaClockNames [DMA_INSTANCE_COUNT] |
Array for eDMA clock sources. More... | |
const clock_names_t | g_dmamuxClockNames [DMAMUX_INSTANCE_COUNT] |
const IRQn_Type | g_edmaErrIrqId [FEATURE_ERROR_INTERRUPT_LINES] |
Array for eDMA module's error interrupt vector number. More... | |