发新帖我要提问
12
返回列表
打印
[其他ST产品]

STM32+IAP方案 实现网络升级应用固件

[复制链接]
楼主: 等你下课
手机看帖
扫描二维码
随时随地手机跟帖
21
等你下课|  楼主 | 2023-1-15 23:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
如此,才能生效,否则,可能原因:
修改后的向量表偏移,在之后的程序中,又再次被还原,通过如下的函数:

使用特权

评论回复
22
等你下课|  楼主 | 2023-1-15 23:52 | 只看该作者
void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);
void SystemInit (void);
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;

使用特权

评论回复
23
等你下课|  楼主 | 2023-1-15 23:53 | 只看该作者
附:
1、如需要.hex文件转.bin,参见上边的文章
当然,就算使用.hex文件,同样可以升级,只是需要修改IAP中判定已经升级的文件是否有效,文件条件部分的代码,
if(((*(__IO uint32_t*)USER_FLASH_FIRST_PAGE_ADDRESS) & 0x2FFE0000 ) == 0x20000000)

使用特权

评论回复
24
等你下课|  楼主 | 2023-1-15 23:54 | 只看该作者
地址偏移后的app应用程序,是否能够独立的运行?
不能,理由:

可知,开机上电并不能够找到我们指定的偏移后的向量表。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则