AM62D FreeRTOS SDK  11.00.00
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
UDMA Chaining

Introduction

UDMA chaining sample application performs a chain of block copy transfer using channel global trigger. Channel 0 completion triggers Channel 1 transfer: CH0 -> CH1.

The application opens and configures two BCDMA channel using SysConfig.

The first channel doesn't user a global trigger and each channel triggers the next channel's global trigger through the channel's TR event register.

A channel's source buffer is previous channel's destination buffer. This ensures that chaining trigger works in a synchronized manner when the memory compare matches.

The transfer completion is based on last channel's DMA completion event. Once the transfer it completes, it does cache operation for data coherency and compares the source and destination buffers for any data mismatch.

Supported Combinations

Parameter Value
CPU + OS a53ss0-0 nortos
a53ss0-0 freertos
c75ss0-0 freertos
mcu-r5fss0-0 nortos
mcu-r5fss0-0 freertos
r5fss0-0 freertos
r5fss0-0 nortos
Toolchain ti-arm-clang
arm.gnu.aarch64-none
ti-c7000
Board am62dx-evm
Example folder examples/drivers/udma/udma_chaining

Steps to Run the Example

See Also

UDMA

Sample Output

Shown below is a sample output when the application is run,

[UDMA] Chaining application started ...
All tests have passed!!