Sometimes, once a week or month, the processor hangs. Neither internal nor external watchdog doesn't brings it from that. Initially processor generates an exception "undefined instruction". Exception routine runs an infinite loop. Then watchdog triggers reset. Processor starts from boot ROM, but boot ROM also don't see flash content and therefore hangs. When watchdogs are not activated in program startup, processor runs in infinite loop in exception routine. I can connect to it via JTAG emulator. I use ICE-1000, with platform settings "do not disturb processor when connecting". I run a debug session, halt processor and see that there is all FF in memory window at addresses of flash memory. I have checked register settings that are controlling flash. They are all right - anyone isn't corrupted. I also tried to reset flash by FLASH_ENABLE bit in FLASH_CONTROL register - flash stays hang. I tried to send to flash a "read array" command and some others via memory window. When processor in normal state the flash answers on commands. In fault state flash don't answer. I see only command byte inteleaving with 00 filling all memory window.
In my device flash runs in asinchronous mode with timings calculated as recommended in Hardware Manual.