Hello,
I am using 6678 DSP with QDMA channel of EDMA included.
I simply wrote a test application which deploys 2 buffers(Source and Dest Buffers), and transfering one-way data(from source to dest) of 1 MB 100 times. After each transfer, I compare the contents of buffers and return error if any of the bytes is different.
When I run the application without bios, test concludes successfully.
Then I recreate the project with SysBios deployed.
From project properties, I add SysBios Packet(6.32.5.54) and in the cfg file I add BIOS variable. But I want to emphasize that I do not use any function of BIOS and even I do not start it with BIOS_Start(). The source code is same as the previous one. But now the test fails.
When I look at PerformDMATransfer() function, I see that no DMA functions returns error. And the Completion Interrupt(IPR register of QDMA) changes to 1 after triggering the word.
- What is the meaning of that ? What may be happening when I deploy SysBios ?
Also, after failing of each transfer, I look at the destination buffer for finding out which element of the array is failing. I see that after the failing element, all remaining elements are 0 (0 is initial value). And this failing point approaches to the top of the array by increment of the transfer count. I mean in the 2nd transfer, the failing point is at the 1000000 th element; in the 3rd transfer failing point is at the 998000th element; in the 4th transfer failing point is the 995000th element.
According to this observation, may it be related with somekind of memory issue ?
I am attaching the 2 projects I am using. Please find them.
QDMATest is without SysBios, pcieTest is with Sysbios...
Thanks and regards,
koray.