I've read the other posts on this forum about invalidating the cache. But I could not make out what the final conclusion was so I am re-posting.
Using a C6701 DSP with external SRAM. Our system is required to run on orbit in a science satellite. We expect to be clobbered with single-event upsets (SEUs). My solution is to place all my code and data in SRAM that is protected by EDAC. But the execution time running from SRAM will not allow us to meet our system specs. If I enable cache in the DSP IPRAM then the execution time is acceptable. But DSP IPRAM is not protected from SEUs. Thinking that I could invalidate the cache periodically so that the DSP gets a clean copy so to speak from SRAM. Thinking it best to invalidate all of L1 & L2 caches.
I did try inserting the following code block but no luck. Not sure if I missed a step or the calls don't work or both. Using CCS 5.3.
#include <csl_cache.h>
CACHE_invalidate(CACHE_L1DALL, (void*)0x00000000, 0x00000000);
CACHE_invalidate(CACHE_L1PALL, (void*)0x00000000, 0x00000000);
CACHE_invalidate(CACHE_L2ALL, (void*)0x00000000, 0x00000000);
Any suggestions?