Эксперимент провел. Вот такой:
QUOTE
__no_init volatile unsigned long check_wr_value;
void check_wr(void)
{
__disable_interrupt();
check_wr_value = 0xCAFEBABE;
check_wr_value = 0xDEADBEEF;
// Watcdog Reset
WDFEED = 0xA5;
}
На двух контроллерах.
На LPC2367 результат правильный:
DEEADBEEF
На LPC2148 дурдом:
CAFEBABE
Других под рукой не оказалось. Но и с этим понятно, что шляпа

Повторная запись помогает, как и запись еще куда нибудь.
На LPC для входа в загрузчик отродясь использовал прямой переход по адресу, и писал не в память а в scratch регистр UART.