Tool/software:
Hi team,
I need you help look into some EDMA issue. I want to use 2 EDMA channel to swap the data in sourceArray and destArray. dmaCh0 and dmaCh1 are transfer channels. And I apply 3 paramSets: param0, param1 and param2. Param0 is assigned to dmaCh0. Param1 and param2 are assigned to dmaCh1. I want to use linking function on dmaCh1. dmaCh0 and dmaCh1 are chained, I'll trigger dmaCh0 manually. The expected process should be I trigger dmaCh0 manually(param0) -> dmaCh1 is triggered because it's chained to dmaCh0(param1) -> param2 is executed on dmaCh1(param2 is linked to param1). But I face some problems when using this method
The OPT set of param1 and param2 are as follow
I want to use an interrupt callback when the total transfer is finished. So transfer interrupt is enabled. The OPT register value is
param1
param2
tcc value
Question1:
tcc2 is assigned to param2, tcc1 is assigned to param1. But Param1->OPT->TCC section is same with Param2->OPT->TCC. I think it should be different, why they are the same? And Param2->OPT->TCC is not equal to tcc2.
Question2:
The link register of Param1 shows this has been set. Static is set to 0. But the link is not performed.
The SWAP sequence is 1. src copied to tmp, 2. dst copied to src, 3. tmp copied to dst. But the param3 is not performed. The link function is performed.
Need you help me find the reason.
Regards,
Shawn