最近在研究用STM32F746NG-DISCO 开发IAP程序,目前用户程序的接收和写入都没有问题,但在跳转的时候怎么都无法执行用户程序,跳转代码是根据官方例程写的
if (((*(__IO uint32_t*)App_address) & 0x2FFE0000 ) == 0x20000000){
temp_address = *(__IO uint32_t*) (App_address + 4);
ADDRESS=(function_pointer)temp_address;
__set_MSP(*(__IO uint32_t*) App_address);
ADDRESS();
}
后来到网上查了资料,试了各种方法,比如关中断__disable_irq();,关外设等等,都没办法执行,最后看官方readme.txt中说要用NVIC_SetVectorTable()重新设置中断向量表,但是我在HAL库里面翻了半天都没能找到这个函数。
求问大神:
1、HAL库中重设中断向量表的函数是什么
2、我这个IAP程序跳转后不执行还有可能是什么问题? |