Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
dma_config Struct Reference

DMA configuration structure. More...

#include <dma.h>

Data Fields

uint32_t dma_slot: 7
 
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 reserved: 5
 
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
 
voiduser_data
 
dma_callback_t dma_callback
 

Detailed Description

DMA configuration structure.

Parameters
dma_slot[ 0 : 6 ] - which peripheral and direction (HW specific)
channel_direction[ 7 : 9 ] - 000-memory to memory, 001-memory to peripheral, 010-peripheral to memory, 011-peripheral to peripheral, ...
complete_callback_en[ 10 ] - 0-callback invoked at completion only 1-callback invoked at completion of each block
error_callback_en[ 11 ] - 0-error callback enabled 1-error callback disabled
source_handshake[ 12 ] - 0-HW, 1-SW
dest_handshake[ 13 ] - 0-HW, 1-SW
channel_priority[ 14 : 17 ] - DMA channel priority
source_chaining_en[ 18 ] - enable/disable source block chaining 0-disable, 1-enable
dest_chaining_en[ 19 ] - enable/disable destination block chaining. 0-disable, 1-enable
linked_channel[ 20 : 26 ] - after channel count exhaust will initiate a channel service request at this channel
reserved[ 27 : 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

◆ 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: