SciFi (12.11.2013 15:05, просмотров: 88) ответил Sylvan на LPC1788 bootloader. Почему не происходит переход на user code?
А я вообще делаю переход на пользовательскую программу через софтовый сброс (с предварительной установкой флага). Загрузчик во первых строках проверяет это условие и прыгает на программу, пропуская свою инициализацию периферии. Соответственно, нет проблем с прерываниями и прочей фигнёй.
Ну а вместо ассемблера вот такая штука:
static const uint16_t launch_fw_code[] =
{
0xF850, 0xDB04, /* LDR.W SP, [R0], #4 */
0x6800, /* LDR.W R0, [R0] */
0x4700, /* BX R0 */
};
...
((void (*)(int))(1 + (int)launch_fw_code))(FW_START);
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้