欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

启动过程分析及FLASH操作

程序员文章站 2024-02-03 20:34:22
...

FLASH操作

  1. STM32启动程序分析

  2. 内部FLASH 操作


1. STM32启动程序分析

ARM7/ARM9内核架构启动:

ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x000000(PC = 0x000000)同时中断向量表的位置并不是固定的。

而Cortex-M3&M4内核则正好相反,有3种情况:

  1. 通过boot引脚设置可以将中断向量表定位于SRAM区,即起始地址为0x2000000,同时复位后PC指针位于0x2000000处;
  2. 通过boot引脚设置可以将中断向量表定位于FLASH区,即起始地址为0x8000000,同时复位后PC指针位于0x8000000处;
  3. 通过boot引脚设置可以将中断向量表定位于内置Bootloader区,本文不对这种情况做论述;

启动过程分析及FLASH操作

这里我们选择主FLASH作为自举空间,也就是将flash映射到0x0000 0000 这个起始地址,通过(通过 ICode/DCode 总线访问)。
启动过程分析及FLASH操作


内部FLASH 操作

我们衔接这上一篇

最后关键是固件程序的升级调用的这个函数:

UpgradeFirmware(lFirmwareLen* UPDATE_PRO_FRMSZ);//页长度*0x200   

启动过程分析及FLASH操作

STM32里有ROM和RAM,ROM就是flash,程序是下载到里面。
当STM32执行程序时,是把ROM中的数据,程序“搬运”到RAM中然后再执行的,一般的指令存储在ROM。
启动过程分析及FLASH操作

将升级程序内容放入到FLASH 中重启。

启动过程分析及FLASH操作
启动过程分析及FLASH操作


相关标签: flash