在N32G455 HTTP_OTA升级上,下载成功,无法跳转

问题遇到的现象和发生背景

在N32G455 HTTP_OTA升级上,下载很成功,DOWNLOAD也可以成功复制到APP中,到那时无法跳转到APP中,因为不是RTT生成的BOOTLOADER所以我是下载的BIN文件而不是RBL,我看了下载的数据,升级的版本内容和当前APP内容是一样的,只是我代码中修改的版本号不一样,说明下载的很成功,而且如果不进行更新的话,是可以正常跳转APP的,当更新了之后,用DOWNLOAD中的新版本替换了原来APP分区的旧版之后,跳转就不运行了

问题相关代码,请勿粘贴截图
void iap_load_app(u32 appxaddr)
{
    if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000)    //检查栈顶地址是否合法.
    { 
        printf("%X\n",*(__IO uint32_t*)appxaddr);    
        printf("---------------栈顶合法----------------\r\n");
      /* Jump to user application */
        SoftReset();
        __disable_irq();
      JumpAddress = *(__IO uint32_t*) (appxaddr + 4);
      JumpToApplication = (pFunction) JumpAddress;
      /* Initialize user application's Stack Pointer */
      __set_MSP(*(__IO uint32_t*) appxaddr);
      JumpToApplication();
            
    }
}

运行结果及报错内容

DUBEG的话,就卡在 JumpToApplication();这里,转不到APP

我的解答思路和尝试过的方法

我验证了下载内容是完整合格的,擦除写入也都是成功的


typedef void (*app_func_t)(void);

void sys_jump_addr(uint32_t addr)
{
    app_func_t jump2app;

    if ((*(uint32_t *)addr) & 0x0FFFFFFF)
    {
        jump2app = (app_func_t) * (uint32_t *)(addr + 4);
        jump2app();
    }
}

试试这个?