stm32f10x的片上存储区有3个部分:内置flash,内置sram,内置romsystem memory),这就决定了系统的启动方式有3种:从内置flash启动,从内置sram启动,从system memory启动,这三种启动方式是通过BOOT[1:0]这个两个脚来决定的。
在系统上电的时候,cpu首先根据这两个脚来确定是哪种模式的启动,然后就是把相应模式的起始地址映射到0地址处,并从0地址处开始执行。
 
在芯片出厂时,st烧写了一个bootloaderrom中,也就是system memory。这个bootloader的主要任务就是通过uart1下载程序到内置flash中去。工作流程如下:
 
system memory boot模式,在执行完成它的任务之后是必须要退出的。这个退出方式是通过一次硬件reset来实现的。在reset的时候,必须要配置BOOT[1:0]这两个脚以使cpu在重启之后进入适当的模式。