AnsweredAssumed Answered

Jump to another application in Flash memory on stm32f4-discovery board

Question asked by panas.slava on Feb 24, 2017
Latest reply on Feb 24, 2017 by Clive One

How to jump to another application in Flash memory on stm32f4-discovery board? Can anyone give complete ibstruction step by step? I have already written bin file to flash. Now I want only to run it. I looked through manu forums and saw a lot of advises, but my project doesn't work.

 

It is one of the examples I've seen:

 

static void boot_jump(uint32_t address) {
typedef  void (*pFunction)(void);
pFunction Jump_To_Application;
uint32_t JumpAddress;
if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
    {
      JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4); 
      Jump_To_Application = (pFunction) JumpAddress;       
      __set_MSP(*(__IO uint32_t*) ApplicationAddress);             
      Jump_To_Application();                                                   
    }
}

It is in first default application. And In another target application I modified file system_stm32f4xx.c:

#define VECT_TAB_SRAM
#define VECT_TAB_OFFSET  0x10000 /*!< Vector Table base offset field.
                                   This value must be a multiple of 0x200. */

 

I also modified options for Target-Target IROM1: 0x8010000 SIze 0x8000

and Linker: Disable "Use Memory Layout from Target Dialog" and R/O Base:0x8010000

Outcomes