Overview

General Direct Memory Access (GDMA) Controller, also known as DMAC, is used to transfer data between memory and peripherals. The data transfer process does not require CPU intervention, thereby reducing the CPU workload. The architecture diagram of DMAC is shown below:

../../../_images/dmac_arch.svg

Features

DMAC supports the following features:

RTL8721Dx:
  • Supports up to 8 independent channels. The source and destination ports of each channel can be freely assigned to Memory or peripherals with DMAC capability.

  • Supports channel priority configuration.

  • Supports multiple transfer directions:

    • Peripheral to Memory

    • Peripheral to Peripheral

    • Memory to Peripheral

    • Memory to Memory

  • Each channel is equipped with an independent FIFO. The FIFO size varies across channels to suit different application scenarios.

  • Flexible flow control options: users can configure the transfer request and pacing to be controlled by the source peripheral, destination peripheral, or the DMAC itself.

  • Supports both single and burst transfer modes.

  • Supports single block and multiple block data transfers.

  • Supports secure transfer mode.

  • Supports low power consumption operation.

  • Supports pause, resume, and disable of channels during data transfers without data loss.