UDMA chaining sample application performs a chain of block copy transfer using channel local trigger.
Channel 0 completion triggers Channel 1 transfer: CH0 -> CH1.
The application opens and configures two BCDMA channel using SysConfig.
The first channel uses a local trigger and triggers the chanined channel through the channel's local trigger 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.
Parameter | Value |
---|---|
CPU + OS | a53ss0-0 nortos |
a53ss0-0 freertos | |
Toolchain | arm.gnu.aarch64-none |
Board | am62lx-evm |
Example folder | examples/drivers/udma/udma_chaining |
Shown below is a sample output when the application is run,