we are using a custom board with ADuC7021. We use page 120 as user space. This page is written every once in a while (say, every day 1 time)
We had some user complains about losing settings. They probably turned off the device after erasing the page.
So we implemented a shadowing algorithm, which solved this.
But we are now doing internal tests of these functions and came across this defect which I cant explain:
While the erasing of page 120 takes place, a powerdown is performed via software and a programmable R&S voltage source (ca 4ms after the erase is started - i cannot be too sure about the timing as this is triggered by labview).
After powering up again, the program code is damaged randomly between 0xC000 and 0xC150 (so, page 96 all the time). I verified with ARMWSD
I suspected a bug somewhere so I protect the whole program code with FEEHIDE = 0xF0000000 at the very beginning of the code (and again after the PLL is settled, just to make sure), so this should NEVER happen. I also confirmed with other devices (but the same design).
Anybody able to help? :\