AnsweredAssumed Answered

STM32F411 IAP

Question asked by Comotti.Daniele.001 on Nov 18, 2015
Latest reply on Nov 20, 2015 by Comotti.Daniele.001
Hello all,
I'm currently working on an STM32F411VEH6 MCU and I'm trying to launch an application located at the flash address 0x08004000 with a bootloader at the flash base address (0x08000000). I've read a bunch of threads on the forum about this topic, but I've not understood well what are the steps to complete this task successfully. So far, I've been able to upload the app binary properly. What should I do next?
As far as I've understood, linker file of the app should be modified accordingly.

I've put in the following the code used to load the app from the bootloader (which should be the one commonly used).

        if (((*(__IO uint32_t*) MCU_FLASH_GetAddress(APPLICATION_SECTOR))
                & 0x2FFE0000) == 0x20000000) {
        /* Jump to user application */
        JumpAddress = *(__IO uint32_t*) (MCU_FLASH_GetAddress(
        APPLICATION_SECTOR) + 4);
        JumpToApplication = (pFunction) JumpAddress;
        /* Initialize user application's Stack Pointer */
        __set_MSP(*(__IO uint32_t*) MCU_FLASH_GetAddress(APPLICATION_SECTOR));
        JumpToApplication();
        }

Finally, in the boot  loader I deal with some interrupts and with the UART DMA. Since in the app I'm making use of interrupts and DMA as well, should I do something more to manage this?

Thanks a lot,
Daniele

Outcomes