miya (@miyako)GD32的引导跳转APP异常问题 中发帖

背景: 
使用GD32F1系列单片机做了一个IAP程序,APP偏移0x6000U,自己实现了协议栈,使用硬件CRC,双备份,内部做了状态清理,HAL_deINIT()这些。
问题:
使用IAP程序进行在线更新的时候,我发现我的一个测试APP(3.9kb)运行正常,同时使用Keil烧写此3.9kb程序,也运行正常。回读的flash数据基本一致。
烧写一个40kb的程序出现异常,程序没有正常工作,如果使用keil烧写就正常。回读flash,二者差异很大。
程序没有超过大小限制,传输后回读的CRC值也正常,APP里面也重新开了中断,做了向量表重映射,为什么会发生这种问题呢?有遇到的大佬解答一下么?