I am attempting to write to flash on a f28335. When I erase or program before my device during initialization, and before my main loop, I have no issues and it works properly. Later, after I am in my main loop, if I want to save data to flash, it fails while trying to erase. I should tell you that the flash erase, program, and verify routines I call this from are in ram, and not flash. I believe that I can still program it (ie Flash_Program), but it fails when I try to erase (Flash_Erase). When I say fail, I don't mean that it comes back with a non-zero return value, what I mean is that the chip just reboots and the system starts over. It also zeros out a chunk of the Flash. I am erasing Sector H, but when it resets, there are 0x0000 from address 0x300000 to around 0x30026A, where it prior to this call, all but the first few values were 0xFFFF.
I did verify that when Flash_Erase is called in both before and after the main loop, the routine call goes to the same address. I don't know this code, but the address is the same, and the symbols look the same. I am also running this on my emulator, but with a release version burned into flash. I should also tell you that prior to calling these functions, I again make the assignments Flash_CPUScaleFactor = SCALE_FACTOR; Flash_CallbackPtr = (void *)NULL;
Any thoughts you might have would be greatly appreciated.
Curtis