
该软件用于STM32设备的固件烧录。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
STM32芯片采用三种启动模式,其对应的存储介质均位于芯片内部。具体而言:1)用户闪存,即芯片内置的Flash存储器;2)系统存储器,这块区域在芯片出厂时预先加载了一段Bootloader程序,通常被称为ISP程序,并且在出厂后无法被修改或擦除,因此它本质上是一个ROM区域;3)SRAM,则是芯片内置的RAM区,类似于计算机中的内存。
每个STM32芯片都配备了BOOT0和BOOT1这两个脚位。在芯片复位时,这两个脚位的电平状态决定了启动程序从哪个存储区域开始执行,如下表所示:BOOT1=x BOOT0=0 则从用户闪存启动,这是常规的工作模式。BOOT1=0 BOOT0=1 则从系统存储器启动,启动程序的具体功能由制造商进行配置。BOOT1=1 BOOT0=1 则从内置SRAM启动,这种模式常用于调试目的。
在系统复位后,SYSCLK的第四个上升沿将锁定BOOT引脚的状态。用户可以通过调整BOOT1和BOOT0引脚的电平状态来选择启动模式。此外,当从待机模式恢复时,BOOT引脚的值也将重新被锁定;因此,在待机模式下应保持BOOT引脚为所需的启动配置。随后在启动延迟之后,CPU会从地址0x0000 0000获取堆栈顶部的地址并从启动存储器的地址 0x0000 0004开始执行代码。
由于固定的存储器映像结构中代码区始终从地址 0x0000 0000 开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址 0x2000 0000 开始(通过系统总线访问)。Cortex-M3 CPU始终通过ICode总线获取复位向量信息,这意味着启动过程通常仅限于从代码区开始(典型地从Flash启动)。STM32F1系列微控制器引入了一种特殊的机制:系统不仅可以从Flash存储器或系统存储器启动,还可以直接从内置SRAM启动。
根据所选的启动模式对存储器进行访问的方式如下:● 从主闪存存储器启动:主闪存存储器的内容可以通过两个地址区域访问—— 原始地址 ( ٠x٠٠٠٠ ٠٠٠٠ ) 或原始地址 ( 0x0800 0000)。● 从系统存储器启动:系统存储器的内容同样可以通过其原始地址访问——互联型产品原有的地址为 0x1FFF B००० ,其他产品原有的地址为 0x1FFF F००० (可用于串口下载)。● 从内置SRAM启动:只能访问以 地址 0x2۰۰۰ ۰۰۰۰ 开始的 SRAM 地址区间。请注意:当采用内置SRAM作为起始点时, 在应用程序初始化阶段, 需要使用NVIC异常表和偏移寄存器, 从新映射的向量表中读取 SRAM 中的中断向量.
全部评论 (0)


