ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_dmac_config_t Struct Reference

DMAC channel configuration. More...

#include <ra8_dmac.h>

Data Fields

uint32_t src
 Source address (DMSAR).
uint32_t dst
 Destination address (DMDAR).
uint16_t count
 Transfer count (DMCRA low).
ra8_dmac_width_t width
 Transfer element width.
bool src_inc
 true: SM = increment, else fixed.
bool dst_inc
 true: DM = increment, else fixed.
ra8_dmac_mode_t mode
 Transfer mode (DMTMD.MD).
uint16_t block_count
 DMCRB block/repeat count.
ra8_dmac_repeat_area_t repeat_area
 DMTMD.DTS area select.
bool irq_each
 Enable RPTIE/ESIE per repeat.
bool enable_dtie
 Enable DMINT.DTIE on full end.

Detailed Description

DMAC channel configuration.

Mirrors the subset of FSP transfer_info_t that this project currently programmes. Defaults (zero-initialized struct) yield a software-triggered, normal-mode transfer with both pointers fixed and no IRQ – safe for the existing CEU / SSIE / SCI / SPI / GPT call sites.

Fields:

  • src / dst : 32-bit bus addresses (DMSAR / DMDAR).
  • count : transfer count, units = 1 << width bytes.
  • width : transfer element size (DMTMD.SZ).
  • src_inc / dst_inc: legacy increment-only flags. When set, the corresponding side is programmed with DMAMD.SM = 10b / DMAMD.DM = 10b. When clear, the side is fixed (00b).
  • mode : DMTMD.MD transfer mode (defaults normal).
  • block_count : DMCRB block / repeat count for non-normal modes. Ignored in normal mode.
  • repeat_area : DMTMD.DTS area select (only used in repeat or block mode; otherwise forced to "none").
  • irq_each : enable transfer-end IRQ even in per-block / per-repeat-size modes (DMINT.RPTIE | ESIE).
  • enable_dtie : enable DMINT.DTIE (transfer-end IRQ at full completion).

Definition at line 121 of file ra8_dmac.h.

Field Documentation

◆ block_count

uint16_t ra8_dmac_config_t::block_count

DMCRB block/repeat count.

Definition at line 129 of file ra8_dmac.h.

Referenced by internal_program_channel(), and ra8_dmac_start_block().

◆ count

uint16_t ra8_dmac_config_t::count

Transfer count (DMCRA low).

Definition at line 124 of file ra8_dmac.h.

Referenced by internal_dmcra_value(), and internal_pack_dmac_cfg().

◆ dst

uint32_t ra8_dmac_config_t::dst

Destination address (DMDAR).

Definition at line 123 of file ra8_dmac.h.

Referenced by internal_pack_dmac_cfg(), and internal_program_channel().

◆ dst_inc

bool ra8_dmac_config_t::dst_inc

true: DM = increment, else fixed.

Definition at line 127 of file ra8_dmac.h.

Referenced by internal_pack_dmac_cfg(), and internal_program_channel().

◆ enable_dtie

bool ra8_dmac_config_t::enable_dtie

Enable DMINT.DTIE on full end.

Definition at line 132 of file ra8_dmac.h.

Referenced by internal_dmint_value().

◆ irq_each

bool ra8_dmac_config_t::irq_each

Enable RPTIE/ESIE per repeat.

Definition at line 131 of file ra8_dmac.h.

Referenced by internal_dmint_value().

◆ mode

◆ repeat_area

ra8_dmac_repeat_area_t ra8_dmac_config_t::repeat_area

DMTMD.DTS area select.

Definition at line 130 of file ra8_dmac.h.

Referenced by internal_dmtmd_value().

◆ src

uint32_t ra8_dmac_config_t::src

Source address (DMSAR).

Definition at line 122 of file ra8_dmac.h.

Referenced by internal_pack_dmac_cfg(), and internal_program_channel().

◆ src_inc

bool ra8_dmac_config_t::src_inc

true: SM = increment, else fixed.

Definition at line 126 of file ra8_dmac.h.

Referenced by internal_pack_dmac_cfg(), and internal_program_channel().

◆ width

ra8_dmac_width_t ra8_dmac_config_t::width

Transfer element width.

Definition at line 125 of file ra8_dmac.h.

Referenced by internal_dmtmd_value(), internal_pack_dmac_cfg(), and internal_validate_cfg().


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