AnsweredAssumed Answered

STM32F107 SD CARD BOOTLOADER

Question asked by paveglio.giovani.002 on Aug 24, 2015
Latest reply on Feb 16, 2016 by Clive One
Good morning!

I was trying to develop a bootloader from sd card, writing two programs in the flash pages first is my own bootloader that verify if is there any .bin files for update the other flash region where my other app is running, all works fine except for the time that is updated the flash, flash write routine works perfect but when Jump_To_Application () is called my app hangs and I need to power down the board and turn on again,then all works fine.

           if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
                                                                                                                                
      {

          /* Jump to user application */
          JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
          Jump_To_Application = (pFunction) JumpAddress;
            App_ptr = (uint8_t*)Jump_To_Application;
            if( (*App_ptr != 0xFF) &&  (App_ptr) )
            {  
                /* Initialise user application's Stack Pointer */
                //__set_MSP(*(__IO uint32_t*) ApplicationAddress);
                *((unsigned long *)0x2000FFF0) = ApplicationAddress;
                
                Jump_To_Application();
            }
      }

I want your help if anyone knows what kind of problem could be this, I want to update the flash and the new program run after the flash is updated.

Flash regions:
Bootloader
0x8000000-0x8009FFF

My App
0x800A000-0x8040000

Thanks,

Giovani

Outcomes