Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

DMA Cache Invalidate and Cache Flush

$
0
0

Hi

I have a buffer that is 15MB created using CMEM. I used DMA to transfer data from SRAM to the buffer for processing.

I did a data check by transferring 6MB of data. In the first transfer of the 6MB, the data is transferred successfully but in the second transfer of the 6MB, I realized that there are some inconsistencies occurring randomly around 2-3Mb.

I referenced some EDMA examples and tried the EDMA3_CacheFlush and EDMA3_CacheInvalidate.

The process takes time because of the flushing and invalidating 15MB each time after transferring 65500 bytes of data. For example to fill the 15MB of data, i will need to invalidate and flush for 240 times. Then, I tried replace the length by some values and somehow I manage to get the inconsistencies to go away but it still takes time to complete the process.

I am not sure if I require to flush the cache or invalidate the cache or what is the proper way to do so if I require flushing and invalidating. Somewhere is wrong but I am not sure.

Please assist.

Thanks...


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>