SMT32H743 - How do I exit the bootloader using the GO command?
To enter the system bootloader, we call the following function:
void BootloadCommandHandler(void)
{
// Set BOOT0 to boot to ROM bootloader
HAL_SYSCFG_CM7BootAddConfig(SYSCFG_BOOT_ADDR0, 0x1FF00000);
// Reset CPU
NVIC_SystemReset();
}
This works just fine and we can bootload the new image. However, when I then jump to 0x0800000 with the GO command, it resets directly back into the bootloader since SYSCFG_BOOT_ADDR0 is still set to the new value of 0x1FF00000; I can confirm this by running the PC side bootloader again. It connects and downloads the new image, confirming that we are still in the bootloader. If I power cycle the board, everything goes back to normal and we are all set. However, we don't want to have to instruct the user to power cycle the device after a remote bootload. Is there any way out of this? Can I call some piece of code that will set SYSCFG_BOOT_ADDR0 back to 0x08000000 and then call another reset?
Thanks,
Jamie
