STM32三种启动模式

本文详细介绍了STM32F10xxx微控制器的三种启动模式,包括从mainflashmemory、systemmemory或SRAM启动的方式及具体实现,以及内嵌的Bootloader如何通过串行接口对flashmemory进行重新编程。
摘要由CSDN通过智能技术生成

STM32三种启动模式


在STM32F10xxx里,可以通过 BOOT[1:0] 引脚选择三种不同启动模式,如下图所示



在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。 


在从待机模式退出时,BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持为需要的启动配置。在启动延迟之后,CPU从地址0x0000 0000获取堆栈顶的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。 


由于存储映射已经固定,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。Cortex-M3的CPU始终从ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash memory启动)。STM32F10xxx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash memory或system memory启动,还可以从embedded SRAM启动。 


根据选定的启动模式,main flash memory、system memory或SRAM可以按照以下方式访问:

从main flash memory启动:main flash memory被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即flash memory的内容可以在两个地址区域访问,0x0000 0000或0x0800 0000。

从system memory启动:system memory被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。

从embedded SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。 

注意: 当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从新映射向量表之SRAM中。


内嵌的Bootloader

内嵌的Bootloader存放在system memory,由ST在生产时写入,用于通过可用的串行接口对flash memory进行重新编程:

● 对于小容量、中容量和大容量的产品,可以通过USART1接口启用bootloader

● 对于互联网型产品,可以通过以下某个接口启用bootloader:USART1、USART2、CAN2、USB OTG。USART接口依靠内部8MHZ振荡器(HSI)运行,CAN和USB OTG接口只能当外部有一个8MHZ、14.7456MHZ或25MHZ时钟(HSE)时运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值