stm32cubeide iap

在 main.c 里面添加

/* USER CODE BEGIN PTD */
typedef  void (*pFunction)(void);
/* USER CODE END PTD */
/* USER CODE BEGIN PD */
#define FLASH_APP_ADDR    0x8008000
/* USER CODE END PD */
/* USER CODE BEGIN 0 */
void UserAppStart(void)
{
    printf("BOOTLOADER Start\n");
    if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000) { 
        printf("APP Start...\n");
        HAL_Delay(100);
      /* Jump to user application */
      JumpAddress = *(__IO uint32_t*) (FLASH_APP_ADDR + 4);
      Jump_To_Application = (pFunction) JumpAddress;        // jump to application address
      /* Initialize user application's Stack Pointer */
      __set_MSP(*(__IO uint32_t*) ApplicationAddress);      // initial application stack pointer
      Jump_To_Application();                                // execute jump, application run...
    } else {
        printf("No APP found!!!\n");
    }
}
/* USER CODE END 0 */

参考: http://ibotx.com/?p=191
https://blog.csdn.net/mynameislinduan/article/details/83579725

猜你喜欢

转载自www.cnblogs.com/ramlife/p/12435986.html