IAP 跳转APP 开始可以,但如果从APP跳回IAP后,再跳到APP失败。 我是按照 下面ST官方文档来的: AN4657 Application note STM32 in-application programming (IAP) using the USART code就是下面的: ----------------- JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4); JumpToApplication = (pFunction) JumpAddress; /* Initialize user application's Stack Pointer */ __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS); JumpToApplication(); ----------------- 请问为什么第一次可以从IAP跳到APP,第二次如果是从APP跳到IAP,那么就不可能再次跳到APP了呢? 谢谢! |
评分
查看全部评分
APP跳转IAP的代码一模一样啊,除了APPLICATION_ADDRESS变为0x08000000.
你说的"中断向量表重新覆盖"是什么意思?我就是改了 VECT_TAB_OFFSET 为 0x08080000(也就是F756的flash的第6个扇区起始值)
评分
查看全部评分
我在APP中跳转前加上 SCB->VTOR = FLASH_BASE ;,但不管用。
评分
查看全部评分
上面这个帖子上好像是提到要把interrupt disable 掉。我看不清我这种情况是应该在APP中disable interrupt 还是在 IAP中。 并且怎么disable interrupt? 我在IAP中使用 __disable_irq(); 后无论何时都不能再跳到APP了。
APP跳转到IAP就用软复位就行啊,用跳转函数的话还需要重新写一遍中断向量表
我现在先使用软复位吧。这样IAP就又可以跳到APP了。