系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过BOOT[1:0]引脚选择三种不同的启动模式。
从待机状态退出模式时,BOOT引脚的值将被重新锁存。因此在待机模式下BOOT引脚应该保持为需要的启动配置。在启动延迟之后,CPU从地址0x0000获取堆栈顶的地址,并从启动存储器的0x0004指示的地址开始执行代码。
因为固定的存储器映像,代码区始终从地址0x00开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x20000000 开始(通过系统总线访问)。Cortex-M3的CPU始终从ICode总线获取复位向量,即启动仅适合从代码区开始(典型的从Flash启动)。STM32F10xx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。
根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问
1、从主闪存存储器启动 :主闪存存储器被映射到启动空间(0x00),但仍然能够在它原有的地址(0x08000000)访
问它,即闪存存储器的内容可以在两个地址区域访问它,0x00000000 或者 0x08000000.
2、从系统存储器启动: 系统存储器被映射到启动空间(0x0000),但仍然能够在它原有的地址(互联型产品原有地址
为 0x1FFFB000, 其他产品原有地址为0x1FFFF000)访问它。
3、从内置SRAM启动 :只能在0x20000000开始的地址区访问SRAM, 程序掉电丢失。
注意 :当从内置 SRAM启动,在应用程序的初始化代码中必须使用 NVIC 的异常表和偏移寄存器重新映射向量表至SRAM 中。