|
SmartSnippets DA1459x SDK
|
Go to the documentation of this file.
46 #if dg_configUSE_HW_DMA
51 #define HW_DMA_SECURE_DMA_CHANNEL HW_DMA_CHANNEL_5
205 HW_DMA_TRIG_SPI_RXTX = 0x0,
206 HW_DMA_TRIG_UART_RXTX = 0x1,
207 HW_DMA_TRIG_UART2_RXTX = 0x2,
208 HW_DMA_TRIG_I2C_RXTX = 0x3,
209 HW_DMA_TRIG_PCM_RXTX = 0x4,
210 HW_DMA_TRIG_SRC_RXRX = 0x5,
211 HW_DMA_TRIG_SRC_TXTX = 0x6,
212 HW_DMA_TRIG_SRC2_RXRX = 0x7,
213 HW_DMA_TRIG_SRC2_TXTX = 0x8,
214 HW_DMA_TRIG_SRC_SRC2_RXTX = 0x9,
215 HW_DMA_TRIG_SRC2_SRC_RXTX = 0xA,
216 HW_DMA_TRIG_SRC_RXTX = 0xB,
217 HW_DMA_TRIG_SRC2_RXTX = 0xC,
218 HW_DMA_TRIG_ADC = 0xD,
219 HW_DMA_TRIG_SD_ADC_FCU = 0xE,
220 HW_DMA_TRIG_NONE = 0xF
386 GPREG->SET_FREEZE_REG =
REG_MSK(GPREG, SET_FREEZE_REG, FRZ_DMA);
395 GPREG->RESET_FREEZE_REG =
REG_MSK(GPREG, RESET_FREEZE_REG, FRZ_DMA);
405 return (
REG_GETF(CRG_TOP, SECURE_BOOT_REG, PROT_APP_KEY) == 1);
422 uint32_t secure_features_msk =
REG_MSK(CRG_TOP, SECURE_BOOT_REG, PROT_APP_KEY);
424 return ((CRG_TOP->SECURE_BOOT_REG & secure_features_msk) == 0);
436 return ((DMA->DMA_INT_STATUS_REG & (
REG_MSK(DMA, DMA_INT_STATUS_REG, DMA_BUS_ERR0) << channel_number)) != 0);
HW_DMA_DREQ dreq_mode
Definition: hw_dma.h:251
HW_DMA_INIT
DMA init mode.
Definition: hw_dma.h:195
#define DMA_DMA0_CTRL_REG_DMA_INIT_Msk
Definition: DA1459x-00.h:2460
void hw_dma_channel_update_int_ix(HW_DMA_CHANNEL channel, uint16_t int_ix)
Update DMA interrupt trigger index.
void hw_dma_channel_update_destination(HW_DMA_CHANNEL channel, void *addr, dma_size_t length, hw_dma_transfer_cb cb)
Update DMA destination address and length.
__STATIC_INLINE bool hw_dma_is_aes_key_protection_enabled(void)
Check if the aes key read protection is enabled.
Definition: hw_dma.h:403
__STATIC_INLINE void hw_dma_freeze(void)
Freeze DMA.
Definition: hw_dma.h:384
#define DMA_DMA0_CTRL_REG_DREQ_MODE_Msk
Definition: DA1459x-00.h:2472
HW_DMA_IRQ_STATE
DMA channel interrupt enable/disable.
Definition: hw_dma.h:95
HW_DMA_AINC
Increment of source address mode.
Definition: hw_dma.h:133
HW_DMA_TRIG dma_req_mux
Definition: hw_dma.h:259
HW_DMA_IDLE
DMA idle mode.
Definition: hw_dma.h:186
Central include header file with platform definitions.
void * user_data
Definition: hw_dma.h:264
DMA peripherals priority structure.
Definition: hw_dma.h:275
HW_DMA_DREQ
DMA request input multiplexer controlled.
Definition: hw_dma.h:104
HW_DMA_BINC b_inc
Definition: hw_dma.h:254
bool hw_dma_is_channel_active(HW_DMA_CHANNEL channel_number)
Check if the corresponding DMA channel is active.
HW_DMA_IRQ_STATE irq_enable
Definition: hw_dma.h:248
HW_DMA_PRIO dma_prio
Definition: hw_dma.h:256
HW_DMA_CHANNEL
DMA channel number.
Definition: hw_dma.h:62
HW_DMA_MODE
Channel mode.
Definition: hw_dma.h:150
uint16 irq_nr_of_trans
Definition: hw_dma.h:249
HW_DMA_TRIG
Channel request trigger.
Definition: hw_dma.h:204
bool use_prio
Definition: hw_dma.h:276
__STATIC_INLINE bool hw_dma_bus_error_detected(HW_DMA_CHANNEL channel_number)
Check if a bus error response has been detected on a specific DMA channel.
Definition: hw_dma.h:434
HW_DMA_BINC
Increment destination address mode.
Definition: hw_dma.h:124
HW_DMA_STATE
DMA channel enable/disable.
Definition: hw_dma.h:76
HW_DMA_PRIO rx_prio
Definition: hw_dma.h:277
HW_DMA_PRIO
Channel priority.
Definition: hw_dma.h:163
HW_DMA_BURST_MODE burst_mode
Definition: hw_dma.h:252
__RETAINED_CODE bool hw_dma_channel_active(void)
Check if any DMA channel is active.
#define REG_MSK(base, reg, field)
Access register field mask.
Definition: sdk_defs.h:583
HW_DMA_CHANNEL channel_number
Definition: hw_dma.h:246
HW_DMA_MODE circular
Definition: hw_dma.h:255
DMA parameters structure.
Definition: hw_dma.h:245
__STATIC_INLINE bool hw_dma_secure_channel_is_free(void)
Check if the DMA secure channel is free. If any encryption protection is enabled (OQSPIF or AES),...
Definition: hw_dma.h:420
HW_DMA_IDLE dma_idle
Definition: hw_dma.h:257
hw_dma_transfer_cb callback
Definition: hw_dma.h:263
HW_DMA_AINC a_inc
Definition: hw_dma.h:253
#define REG_GETF(base, reg, field)
Return the value of a register field.
Definition: sdk_defs.h:711
HW_DMA_PRIO tx_prio
Definition: hw_dma.h:278
void hw_dma_channel_update_source(HW_DMA_CHANNEL channel, void *addr, dma_size_t length, hw_dma_transfer_cb cb)
Update DMA source address and length.
#define DMA_DMA0_CTRL_REG_AINC_Msk
Definition: DA1459x-00.h:2468
#define DMA_DMA0_CTRL_REG_BINC_Msk
Definition: DA1459x-00.h:2470
uint32 dest_address
Definition: hw_dma.h:261
void hw_dma_channel_enable(HW_DMA_CHANNEL channel_number, HW_DMA_STATE dma_on)
Enable or disable a DMA channel.
dma_size_t hw_dma_transfered_bytes(HW_DMA_CHANNEL channel_number)
Read number of transmitted bytes so far.
void hw_dma_channel_stop(HW_DMA_CHANNEL channel_number)
Stop DMA channel if operation is in progress.
uint32_t dma_size_t
DMA transfer size type.
Definition: hw_dma.h:227
uint32 src_address
Definition: hw_dma.h:260
#define DMA_DMA0_CTRL_REG_DMA_IDLE_Msk
Definition: DA1459x-00.h:2462
HW_DMA_BW bus_width
Definition: hw_dma.h:247
HW_DMA_INIT dma_init
Definition: hw_dma.h:258
dma_size_t length
Definition: hw_dma.h:262
HW_DMA_BURST_MODE
DMA channel burst mode.
Definition: hw_dma.h:112
__STATIC_INLINE void hw_dma_unfreeze(void)
Unfreeze DMA.
Definition: hw_dma.h:393
void hw_dma_channel_initialization(DMA_setup *channel_setup)
Initialize DMA Channel.
void(* hw_dma_transfer_cb)(void *user_data, dma_size_t len)
DMA channel transfer callback.
Definition: hw_dma.h:239
#define DMA_DMA0_CTRL_REG_CIRCULAR_Msk
Definition: DA1459x-00.h:2466
HW_DMA_BW
DMA channel bus width transfer.
Definition: hw_dma.h:85