AnsweredAssumed Answered

stm32f4+RTX(RTOS) jump to app from user bootloader

Question asked by jin.chase on Mar 7, 2013
Latest reply on Mar 7, 2013 by Clive One

chip: sm32f407
IDE: keil MDK

I have user bootloader at 0x08000000, and app code  at 0x08020000.
Duo to project requirement, I need to run RTX in my bootloader , and can jump to app from bootloader.

Problem is when without enabling RTOS it’s working fine,but once enable the RTOS then the App will not run.

I tried to disable SystemTick Timer so as to stop OS and it was useless .
I disabled all interrupts using __set_FAULTMASK, but it was useless too.

my jump code like bellowings;

 if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
 {
  //__set_FAULTMASK(0x01);
  JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS+4);
  /* Jump to user application */
  Jump_To_Application = (pFunction) JumpAddress;
  /* Initialize user application's Stack Pointer */
  
  __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);
  printf("application start...""\r\n");

  Jump_To_Application();
 }

Are there any suggestions?

Thanks!

Outcomes