Image
Image

发给她更好fh

+ 关注

粉丝 1     |     主题 43     |     回帖 563

STM32F4单片机bootloader及在线升级IAP基本原理
2025-3-10 21:33
  • ST MCU
  • 87
  • 6758
  这个增加了一个按键选择功能,帮助测试APP1和APP2区代码的跳转。  
  源码: #include #include "stm32_flash.h" #include "App_Init.h" int main(void) { GPIO_InitTypeD ...  
  ......  
  BootLoader2的方案也很简单根据跳转标志跳转至APP1还是APP2,否则停留在当前BootLoader2中,同时进行将相对 ...  
  源码如下: int main(void) { while(1) { if(((*(vu32*)(0x08008000+4))&0xFF000000)==0x08000000)/ ...  
  ......  
  BootLoader设计 然后是BootLoader设计,BootLoader1的功能就是引导跳转至BootLoader2区,跳过flag区。 ...  
  升级方案设计 升级方案如下图所示  
  目前标志位存两个变量,一个是用于跳转的flag当值为0x11时BootLoader2引导跳转至APP1区,当值为0x22时跳转 ...  
  标志位区内容、  
  BootLoader2占空扇区2-4,大小96k。sector5-7存储APP1,sector8-10存储APP2.最后sector11预留使用。 ...  
  首先需要根据flash的情况进行分区确定每个扇区的功能,这次采用双BootLoader的设置,使用BootLoader1跳过se ...  
  flash分区  
  iap升级实例 这里以我测试用的双区模式为例,使用一个标志位进行APP1和APP2区域的切换。只讲基本过程,具体 ...  
  第一种比较好实现,缺点就是每次升级都需要做一次代码的对调。第二种比较难以实现,因为flash中中断向量表 ...  
  双区模式,代码备份功能具备,当然对应的对于小容量产品就显的比较占用空间。双区模式又根据APP区的用法分 ...  
  自定义bootloader+app1+app2、  
  单区模式,用自定义的BootLoader代替原厂的,操作方便,通过正常逻辑代码中的外设进行指令级别的跳转无需配 ...  
  ......  
  、自定义bootloader+app  
2
3
近期访客