RA6M2 Keil 平台 BOOT 跳转到 APP异常,调试AP进入NMI中断

BOOT 跳转程序APP ,没有使用MCUboot,使用简单的boot + app APP地址 0x20000,调试软件keil  ,单独调试boot 和  app 都运行正常 , 如下图所示:

void iap_drv_jump_to(uint32_t jump_addr)
{
uint32_t JumpAddress = jump_addr;

iap_mcu_deal(0);

SCB->VTOR = jump_addr;

__set_MSP(*(uint32_t *)jump_addr);

JumpAddress = *(__IO uint32_t*) (jump_addr + 4);
jump_to_func = (pfunc) JumpAddress;

R_MPU_SPMON->SP[0].CTL = 0;

jump_to_func();
}

boot sct文件配置:

#define RAM_START 0x1FFE0000
#define RAM_LENGTH 0x60000
#define FLASH_START 0x00000000
#define FLASH_LENGTH 0x020000
#define DATA_FLASH_START 0x40100000
#define DATA_FLASH_LENGTH 0x8000
#define OPTION_SETTING_START 0x00000000
#define OPTION_SETTING_LENGTH 0x0
#define OPTION_SETTING_S_START 0x00000000
#define OPTION_SETTING_S_LENGTH 0x0
#define ID_CODE_START 0x0100A150
#define ID_CODE_LENGTH 0x10
#define SDRAM_START 0x90000000
#define SDRAM_LENGTH 0x8000000
#define QSPI_FLASH_START 0x60000000
#define QSPI_FLASH_LENGTH 0x4000000
#define OSPI_DEVICE_0_START 0x68000000
#define OSPI_DEVICE_0_LENGTH 0x0
#define OSPI_DEVICE_1_START 0x70000000
#define OSPI_DEVICE_1_LENGTH 0x0

APP层 sct文件配置

#define RAM_START 0x1FFE0000
#define RAM_LENGTH 0x60000
#define FLASH_START 0x00020000
#define FLASH_LENGTH 0x0E0000
#define DATA_FLASH_START 0x40100000
#define DATA_FLASH_LENGTH 0x8000
#define OPTION_SETTING_START 0x00000000
#define OPTION_SETTING_LENGTH 0x0
#define OPTION_SETTING_S_START 0x00000000
#define OPTION_SETTING_S_LENGTH 0x0
#define ID_CODE_START 0x0100A150
#define ID_CODE_LENGTH 0x10
#define SDRAM_START 0x90000000
#define SDRAM_LENGTH 0x8000000
#define QSPI_FLASH_START 0x60000000
#define QSPI_FLASH_LENGTH 0x4000000
#define OSPI_DEVICE_0_START 0x68000000
#define OSPI_DEVICE_0_LENGTH 0x0
#define OSPI_DEVICE_1_START 0x70000000
#define OSPI_DEVICE_1_LENGTH 0x0

从BOOT层 跳转到APP层后,进入NMI中断,中断值显示 0x1000,查看数据手册,显示 

  

请各位大神帮助一下,帮忙看看什么问题。或者有keil 平台 RA6M2 boot / APP 例程的麻烦发一下到邮箱76430739@qq.com ,非常感谢。

Parents Reply Children
No Data