DMA Scatter-Gather DBE Error

cancel
Showing results for 
Search instead for 
Did you mean: 

DMA Scatter-Gather DBE Error

354 Views
salmanc
Contributor III

Hi everyone,

I am using #mpc5674f I am trying to use #DMA controller and I have to use its Dynamic Programming feature: scatter/gather .

I have prepared the required TCDs: the first #TCD function and the new /second TCD function (TCD_scattergather that is going to be loaded after first TCD).

When I run  the code with the different Destination Addresses, Scatter-gather works fine and there is no error bit set. Also I can see the data in destination addresses properly.

But when I give the same destination address in both TCD, when the code runs, Destination Bus Error bit set in EDMA_x_ESR register and there is no current data in the destination address, it doesn't work.

I guess it doesn't load the new TCD because of this error bit. 

I have read the "#0-modulo-32-byte" issue but. this problem only happens when I give the same destination addresses to the TCDs.

 

Doesn't 5674F allow to write to the same destination addresses in scatter-gather? Is there a limitation in this area? We have to use the same destination addresses, it's required for our project. 

You can see the TCD functions below.

Please, can anyone help? 

Thank you so much in advance. :smileyhappy:

Ceren.

2tcds.PNG

2 Replies

174 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

Hi, I guess it could be because of

pastedImage_1.png

I would expect next TCD address there.

Otherwise you could attach the whole DMA code allowing me to look it on thoroughly.

The same address can be used multiple times, there is no reason against it.

174 Views
salmanc
Contributor III

Thank you. :smileyhappy: I guess I have solved the problem, it's about 0-modulo-32-byte issue. I first thought this rule is for the destination address in the scatter-gather-TCD. But then I found out that 0-modulo-32-byte issue is for the address that holds the scatter-gather-TCD. I guess I'll need memory mapping in my project, for the scatter-gather-TCDs. Because, after a new variable or array definition, all addresses shift down and 0-modulo-32-byte error happens.  

0 Kudos