Как правильно сделать программный рестарт в MSP430F5438A ?
(IAR, MODEL == LARGE)
То, что работало на F2618, не прокатывает:
Код
void SystemReStart()
{
__disable_interrupt();
asm ("push &0xfffe");
asm ("ret");
};
Код этой функции размещен в "за-64К" области.
Насколько удается посмотреть на отладчике, после этой процедуры идет влет в пустую область памяти 0xFF.
Изменил на asm для 20-битного адреса (pushx.a, reta) - "рояль не заиграл".
Ресет успешно выполняется способами
- старта WDT
- "подсовывания" перехода на команду, находящуюся не в программной памяти а в области адресов регистров (fetch)
(?) что может быть не так с "прямым" вызовом push+ret ?