通过在STM32F10XXX里,可以通过BOOT[1:0]引脚选择3种不同启动模式:
BOOT1 BOOT0 启动模式 说明
X 0 主闪存存储器 正常工作模式
0 1 系统存储器 这种模式启动的程序功能由厂家设置
1 1 内置SRAM 这种模式用于调试
在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。在从待机模式退出时,BOOT的引脚值也将被锁存。因此,在待机模式下BOOT引脚应保持为需要的启动设置。在启动延迟后,CPU
从地址0x0000 0000获取都会占地的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。
因为代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。CM3的CPU始终从ICode总线获取复位向量,即启
动仅适合于从代码区开始(典型从FLASH启动)。STM32实行一个特殊的机制,系统既可以从FLASH或系统存储器启动, 还可以从内置的SRAM启动。
(1)从主闪存存储器启动:其被映射到启动空间( 0x0000 0000),但仍能够在他原有的地址(0x0800 0000)访问它。即闪存存储器的内容可以再两个地址区域访问(0x0000 0000 或0x0800 0000)
(2)从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍能在他原有的地址(0x1fff b000或0x1fff f000)访问它。
(3)从内置的SRAM启动:只能在0x2000 0000开始的地址去访问SRAM,多数情况下,SRAM只是在调试时使用,也可以做其他一些用途,如做故障的局部诊断,写一段小程序加载SRAM中诊断班上的其他电
路,或者用此方法读写班上的FLASH或EEPROM等,还可以荣国这种方法解除内部FLASH的读写保护,当然接触的同时, Flash的内容也被自动清除,一防恶意的软件复制。
注意:当从内部SRAM启动时,在应用程序的初始化代码中,必须使用NVIC的异常表和便宜寄存器,重新映射向量表到SRAM中。
BOOT1 BOOT0 启动模式 说明
X 0 主闪存存储器 正常工作模式
0 1 系统存储器 这种模式启动的程序功能由厂家设置
1 1 内置SRAM 这种模式用于调试
在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。在从待机模式退出时,BOOT的引脚值也将被锁存。因此,在待机模式下BOOT引脚应保持为需要的启动设置。在启动延迟后,CPU
从地址0x0000 0000获取都会占地的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。
因为代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。CM3的CPU始终从ICode总线获取复位向量,即启
动仅适合于从代码区开始(典型从FLASH启动)。STM32实行一个特殊的机制,系统既可以从FLASH或系统存储器启动, 还可以从内置的SRAM启动。
(1)从主闪存存储器启动:其被映射到启动空间( 0x0000 0000),但仍能够在他原有的地址(0x0800 0000)访问它。即闪存存储器的内容可以再两个地址区域访问(0x0000 0000 或0x0800 0000)
(2)从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍能在他原有的地址(0x1fff b000或0x1fff f000)访问它。
(3)从内置的SRAM启动:只能在0x2000 0000开始的地址去访问SRAM,多数情况下,SRAM只是在调试时使用,也可以做其他一些用途,如做故障的局部诊断,写一段小程序加载SRAM中诊断班上的其他电
路,或者用此方法读写班上的FLASH或EEPROM等,还可以荣国这种方法解除内部FLASH的读写保护,当然接触的同时, Flash的内容也被自动清除,一防恶意的软件复制。
注意:当从内部SRAM启动时,在应用程序的初始化代码中,必须使用NVIC的异常表和便宜寄存器,重新映射向量表到SRAM中。