本帖最后由 _寒寒_ 于 2016-4-13 16:03 编辑
按照datasheet给的流程。通过ISP的VECMAP指令修改了中断向量表到0x2000。软复位后,没有跳转,回到原来的向量表 0x0。
app的bin通过ICP工具下载到0x2000处。config里面设置了IAP功能
FMC->ISPCON |= FMC_ISPCON_ISPEN_Msk;
FMC->ISPADR = 0x2000;
FMC->ISPCMD = FMC_ISPCMD_VECMAP;
FMC->ISPTRG |= FMC_ISPTRG_ISPGO_Msk;
__ISB();
在论坛帖找到了答案,测试可以成功跳转。[应用方案] IAP Application Note:介绍IAP的概念和用法,以及ISP与IAP的区别
修改复位向量后,软复位,不能正确跳转,一直跳转到IAP的复位地址去了。不过使用**说的另一种办法,直接跳转到新固件地址,就可以实现了。
另外,**提到要修改链接脚本,向量表处不能存放其他内容。实际上,我没有修改,只是修改了ROM表的起始位置。
|