UDMA SW Trigger
Introduction
UDMA SW trigger sample application performs 3D transfer using SW trigger method as below Loop N times (icnt2)
SW trigger CH 0 -> Triggers MSMC to Intermediate buffer
Wait for CH 0 icnt0 x icnt1 to complete
SW trigger Channel 1 -> Triggers Intermediate buffer to MSMC
Wait for CH 1 icnt0 x icnt1 to complete
Each loop transfers M (icnt0 x icnt1) bytes of data. MSMC size is M x N and intermediate buffer size is just M bytes. Intermediate buffer memory set to wrap around after M bytes of transfer.
Where,
M is icnt0 x icnt1 (UDMA_TEST_1D_SIZE x UDMA_TEST_2D_SIZE)
N is icnt2 = UDMA_TEST_3D_SIZE
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 |
wkup-r5fss0-0 freertos |
Toolchain |
ti-arm-clang |
Board |
am62px-sk |
Example folder |
examples/drivers/udma/udma_chaining |
Steps to Run the Example
When using CCS projects to build, import the CCS project for the required combination and build it using the CCS project menu (see Using SDK with CCS Projects).
When using makefiles to build, note the required combination and build using make command (see Using SDK with Makefiles)
Launch a CCS debug session and run the executable, see CCS Launch, Load and Run
Attention
As the wake-up R5 is the device manager, it needs to be started by the SBL. So it can not be loaded through CCS. It should be flashed and booted through SBL.
Refer Flash a Hello World example for flashing the application.
See Also
Sample Output
Shown below is a sample output when the application is run,
[UDMA] SW Trigger application started ...
All tests have passed!!