Не стал заводить ещё одну тему. Спрошу тут.
Как правильно программно перезапустить lpc1768 ?
Щас используется такой код:
Код
DBGSTRINFO("Reset!\n\n\n\n");
portDISABLE_INTERRUPTS();
for (int i = 0; i < 35; i++)
{
NVIC_DisableIRQ((IRQn_Type) i);
NVIC_ClearPendingIRQ((IRQn_Type) i);
}
SCB->VTOR = 0x0; //bootloader_start_addr;
asm volatile
(
"ldr r0, =0 \n"
"msr control, r0 \n" // init control reg like reset did
"ldr r0, =0x0 \n"
"ldr sp, [r0] \n"//init stack pointer reg on start_bootloader_addr
"ldr r0, =0x4 \n"
"ldr pc, [r0] \n"//init program counter reg on start_bootloader_addr+4 - jump to user code
);
Прошивка перезапускается, но виснет в процессе загрузки. Если передёрнуть питания, то стартует нормально.
Сообщение отредактировал Terminator - Oct 22 2012, 05:25