Hi Raju,
after some deeper investigation, it seems it's really necessary to disable interrupts during refresh. You wrote:
"One thing I observed was I'm not enabling & disabling the interrupts during the refresh mechanism. If I do that the reset is not occurring."
But there's a note in the RM:
"Before starting the refresh sequence, disable the global
interrupts. Otherwise, an interrupt could effectively invalidate
the refresh sequence, if the interrupt occurs before the refresh
writes finish. After the sequence finishes, restore the global
interrupt control state."
And there's also code example:
To refresh the watchdog and reset the watchdog counter to zero, a refresh sequence is
required. The code snippet below shows an example for 32-bit write.
DisableInterrupts; // disable global interrupt
WDOG_CNT = 0xB480A602; // refresh watchdog
EnableInterrupts; // enable global interrupt
So, if this works, I would stick to this solution.
Regards,
Lukas