Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
dma_config Struct Reference

DMA configuration structure. More...

#include <dma.h>

Data Fields

uint32_t dma_slot: 8
 
uint32_t channel_direction: 3
 
uint32_t complete_callback_en: 1
 
uint32_t error_callback_en: 1
 
uint32_t source_handshake: 1
 
uint32_t dest_handshake: 1
 
uint32_t channel_priority: 4
 
uint32_t source_chaining_en: 1
 
uint32_t dest_chaining_en: 1
 
uint32_t linked_channel: 7
 
uint32_t cyclic: 1
 
uint32_t reserved: 3
 
uint32_t source_data_size: 16
 
uint32_t dest_data_size: 16
 
uint32_t source_burst_length: 16
 
uint32_t dest_burst_length: 16
 
uint32_t block_count
 
struct dma_block_confighead_block
 
void * user_data
 
dma_callback_t dma_callback
 

Detailed Description

DMA configuration structure.

Parameters
dma_slot[ 0 : 7 ] - which peripheral and direction (HW specific)
channel_direction[ 8 : 10 ] - 000-memory to memory, 001-memory to peripheral, 010-peripheral to memory, 011-peripheral to peripheral, 100-host to memory 101-memory to host ...
complete_callback_en[ 11 ] - 0-callback invoked at completion only 1-callback invoked at completion of each block
error_callback_en[ 12 ] - 0-error callback enabled 1-error callback disabled
source_handshake[ 13 ] - 0-HW, 1-SW
dest_handshake[ 14 ] - 0-HW, 1-SW
channel_priority[ 15 : 18 ] - DMA channel priority
source_chaining_en[ 19 ] - enable/disable source block chaining 0-disable, 1-enable
dest_chaining_en[ 20 ] - enable/disable destination block chaining. 0-disable, 1-enable
linked_channel[ 21 : 27 ] - after channel count exhaust will initiate a channel service request at this channel
cyclic[ 28 ] - enable/disable cyclic buffer 0-disable, 1-enable
reserved[ 29 : 31 ]
source_data_size[ 0 : 15 ] - width of source data (in bytes)
dest_data_size[ 16 : 31 ] - width of dest data (in bytes)
source_burst_length[ 0 : 15 ] - number of source data units
dest_burst_length[ 16 : 31 ] - number of destination data units
block_countis the number of blocks used for block chaining, this depends on availability of the DMA controller.
user_dataprivate data from DMA client.
dma_callbacksee dma_callback_t for details

Field Documentation

◆ block_count

uint32_t dma_config::block_count

◆ channel_direction

uint32_t dma_config::channel_direction

◆ channel_priority

uint32_t dma_config::channel_priority

◆ complete_callback_en

uint32_t dma_config::complete_callback_en

◆ cyclic

uint32_t dma_config::cyclic

◆ dest_burst_length

uint32_t dma_config::dest_burst_length

◆ dest_chaining_en

uint32_t dma_config::dest_chaining_en

◆ dest_data_size

uint32_t dma_config::dest_data_size

◆ dest_handshake

uint32_t dma_config::dest_handshake

◆ dma_callback

dma_callback_t dma_config::dma_callback

◆ dma_slot

uint32_t dma_config::dma_slot

◆ error_callback_en

uint32_t dma_config::error_callback_en

◆ head_block

struct dma_block_config* dma_config::head_block

◆ linked_channel

uint32_t dma_config::linked_channel

◆ reserved

uint32_t dma_config::reserved

◆ source_burst_length

uint32_t dma_config::source_burst_length

◆ source_chaining_en

uint32_t dma_config::source_chaining_en

◆ source_data_size

uint32_t dma_config::source_data_size

◆ source_handshake

uint32_t dma_config::source_handshake

◆ user_data

void* dma_config::user_data

The documentation for this struct was generated from the following file: