STM32IAP固件升级

前段时间在弄stm32基于GMS的固件升级,在网上查了很多资料,知道个大概。现在把我遇到的一些问题记录下来,和大家一起分享。

第一次写技术博客,高手勿喷!!!!


stm32IAP可以说分为两部分:bootloader+APP(我们平时烧录进单片机的程序)。启动过程大概是这样:1stm32上电,进入bootloader程序。2检测是否需要固件升级,如果需要,则通过USART,CAN,网络等收到hex或者bin流,用flash编程写进后面的flash中。3如果不需要升级则跳到APP程序。

在这里先说说关于stm32统一编址,stm32的寻址范围是2的32次方,也就是4G。我的用户flash的起始地址为0x0800 0000,SRAM的起始地址为0x2000 0000。那么0x0000 0000-0x07FF FFFF这段空间其实是根据我们boot1和boot0的选择确定是从flash启动还是从SRAM启动的,换句话说也就是将flash或者SRAm的地址映射过来的。


bootloader:首先我们要知道自己所用的cpu的flash和SRAM空间,我的是stm32F103,256Kflash,48KSRAM,弄清楚这个可以合理的分配bootloader和APP的空间。我在我的项目中分给bootloader的空间是0x8000,也就是32Kflash来存放bootloader。剩余的0x0380 0000的空间我用来存放APP(起始地址为0x0800 8000)。

关键代码:

#define  ApplicationAddress1     0x08008000    //应用程序起始地址
</

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值