做过STM32f1,f0系列的iap,没问题。这些要做GD32f130的IAP,flash的擦写没问题,通过工具查看内存flash擦写是正确的。我甚至直接用KEIL直接在对应的地址偏移下载了。但是程序跳转过去后就卡住了。关中断,中断向量偏移都做,
NVIC_VectTableSet( NVIC_VECTTAB_FLASH , 0x2800);
__set_FAULTMASK(0);
还是死机。
这是IAP跳转函数
if (((*(__IO uint32_t*)FLASH_APP1_ADDR) & 0x2FFE0000 ) == 0x20000000)
{
JumpAddress = *(__IO uint32_t*) (FLASH_APP1_ADDR + 4);
Jump_To_Application = (pFunction) JumpAddress;
__set_FAULTMASK(1);
MOD_LED_Set(LED_SYS ,LED_ON);
__set_MSP(*( __IO uint32_t* ) FLASH_APP1_ADDR); // 初始化应用程序堆栈指针
Jump_To_Application() ; // 跳转到应用程序
}
有没有做过GD32F130IAP成功的大师?谢谢了,搞了一整天。 |