STM32F030芯片的IAP升级

昨天IAP升级差点翻水水,具体过程容我细细道来。。。

 

单片机在线升级应该是IAP+APP。

怎么做STM32F030的IAP程序我就简单介绍一下吧(其他大佬应该有详细的,我只说点我自己遇到的问题)。

先介绍一下我理解的IAP 的概念(不知道对不对,希望大家补充)

我理解中IAP升级就是把两个程序放到Flash的两个地方,启动完IAP之后跳转到APP,APP也要是一个完整的程序,中断向量,堆栈指针啥的要全。我就不放图了,懒,也不想盗别家的图。

IAP启动,各种相关初始化完成,检测是否有符合规则的数据包,有的话接收下载,没的话就跳转到Flash中的APP程序区。

STM32F030只不过没有其他STM32的VTOR寄存器,所以需要将中断向量表先复制到RAM中,之后再设置芯片从RAM启动,本来芯片是从Flash启动的,但是这不没有VTOR寄存器存中断向量表么,所以就这么干,通过SYSCFG_MemoryRemapConfig库函数实现,其实也就是弄个寄存器的事情,当然了,懒得看手册就直接用这个函数就行了。

接下来就是要注意的:

我用的STM32F030C8T6,Flash还好有64K,但是RAM只有8K,这就难受了,要改之前写好的的IAP程序,因为之前升级都是2K一次下载到Flash中,可以一个接收数据用的uint8_t flash_buf[2048],一个CRC检验的uint8_t flash_checkbuf[2048];,再加一个下载到程序的uint32_t iapbuf[512],这就6k的RAM了啊(之前用在F407上的),

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值