Other Parts Discussed in Thread: HALCOGEN
Hello,
I am trying to use the CRC and DMA modules to do an error check of the FLASH memory content, specifically the program storage locations. I am using a Semi-CPU mode where I manually initiate the DMA block transfer of data from the FLASH memory to the CRC register. This works as expected until the DMA is allowed to check a FLASH address past the end of the programmed space. At that time, as expected, the DMA sets the imprecise error flag in the ESM due to it reading a FLASH value with an incorrect (uninitiated) ECC value. In some cases I also get a FMC uncorrectable error in the ESM.
A simple solution would be to stop the DMA read just short of the programmed space or at exactly the end of the programmed space. This is a problem while developing the code as the end of the programed FLASH is always changing with each edit. Also trying to pick an element and frame count to match this exact address is an issue.
It seems the easy solution would be to simply fill the remainder of the flash bank with a default value which would also set the ECC values. So far I have not found a way to do this.
I feel like I'm missing something very simple here. Examples are given showing the DMA and CRC being used automatically to check FLASH memory for errors, but there is no mention of this issue. Unless the DMA stops at the last programmed FLASH value, the above mentioned errors will occur. What am I missing?
Thanks,
Allen