Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
dma_config Struct Reference

DMA configuration structure. More...

#include <dma.h>

Data Fields

uint32_t dma_slot: 8
 Which peripheral and direction, HW specific.
 
uint32_t channel_direction: 3
 Direction the transfers are occurring.
 
uint32_t complete_callback_en: 1
 Completion callback enable.
 
uint32_t error_callback_dis: 1
 Error callback disable.
 
uint32_t source_handshake: 1
 Source handshake, HW specific.
 
uint32_t dest_handshake: 1
 Destination handshake, HW specific.
 
uint32_t channel_priority: 4
 Channel priority for arbitration, HW specific.
 
uint32_t source_chaining_en: 1
 Source chaining enable, HW specific.
 
uint32_t dest_chaining_en: 1
 Destination chaining enable, HW specific.
 
uint32_t linked_channel: 7
 Linked channel, HW specific.
 
uint32_t cyclic: 1
 Cyclic transfer list, HW specific.
 
uint32_t source_data_size: 16
 Width of source data (in bytes)
 
uint32_t dest_data_size: 16
 Width of destination data (in bytes)
 
uint32_t source_burst_length: 16
 Source burst length in bytes.
 
uint32_t dest_burst_length: 16
 Destination burst length in bytes.
 
uint32_t block_count
 Number of blocks in transfer list.
 
struct dma_block_confighead_block
 Pointer to the first block in the transfer list.
 
void * user_data
 Optional attached user data for callbacks.
 
dma_callback_t dma_callback
 Optional callback for completion and error events.
 

Detailed Description

DMA configuration structure.

Field Documentation

◆ block_count

uint32_t dma_config::block_count

Number of blocks in transfer list.

◆ channel_direction

uint32_t dma_config::channel_direction

Direction the transfers are occurring.

  • 0b000 memory to memory,
  • 0b001 memory to peripheral,
  • 0b010 peripheral to memory,
  • 0b011 peripheral to peripheral,
  • 0b100 host to memory
  • 0b101 memory to host
  • others hardware specific

◆ channel_priority

uint32_t dma_config::channel_priority

Channel priority for arbitration, HW specific.

◆ complete_callback_en

uint32_t dma_config::complete_callback_en

Completion callback enable.

  • 0b0 callback invoked at transfer list completion only
  • 0b1 callback invoked at completion of each block

◆ cyclic

uint32_t dma_config::cyclic

Cyclic transfer list, HW specific.

◆ dest_burst_length

uint32_t dma_config::dest_burst_length

Destination burst length in bytes.

◆ dest_chaining_en

uint32_t dma_config::dest_chaining_en

Destination chaining enable, HW specific.

◆ dest_data_size

uint32_t dma_config::dest_data_size

Width of destination data (in bytes)

◆ dest_handshake

uint32_t dma_config::dest_handshake

Destination handshake, HW specific.

  • 0b0 HW
  • 0b1 SW

◆ dma_callback

dma_callback_t dma_config::dma_callback

Optional callback for completion and error events.

◆ dma_slot

uint32_t dma_config::dma_slot

Which peripheral and direction, HW specific.

◆ error_callback_dis

uint32_t dma_config::error_callback_dis

Error callback disable.

  • 0b0 error callback enabled
  • 0b1 error callback disabled

◆ head_block

struct dma_block_config* dma_config::head_block

Pointer to the first block in the transfer list.

◆ linked_channel

uint32_t dma_config::linked_channel

Linked channel, HW specific.

◆ source_burst_length

uint32_t dma_config::source_burst_length

Source burst length in bytes.

◆ source_chaining_en

uint32_t dma_config::source_chaining_en

Source chaining enable, HW specific.

◆ source_data_size

uint32_t dma_config::source_data_size

Width of source data (in bytes)

◆ source_handshake

uint32_t dma_config::source_handshake

Source handshake, HW specific.

  • 0b0 HW
  • 0b1 SW

◆ user_data

void* dma_config::user_data

Optional attached user data for callbacks.


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