1.下载电路
常用的下载模式有两种JTAG(5针)和SW(2针),两种下载模式的引脚是通用的。
其中SW使用CLK和SWDIO两个IO引脚分别为PA14和PA13,因此最小系统核心板只有四个引脚。
通常下载电路,电容是滤波作用
2.启动模式的选择(BOOT0、BOOT1)
设置boot0和boot1控制,分别为PB2和PB8,正常我们使用到的通常为flash启动。flash具有存储功能,掉电以后,程序依旧存在其中,上电后可以自动执行。
STM32上电或者复位后,代码区始终从0x00000000开始,三种启动模式其实就是将各自存储空间的地址映射到0x00000000中。
(1)从Flash启动,将主Flash地址0x08000000映射到0x00000000,这样代码启动之后就相当于从0x08000000开始。
(2)从RAM启动,将RAM地址0x20000000映射到0x00000000,这样代码启动之后就相当于从0x20000000开始。
(3)从系统存储器启动。首先控制BOOT0 BOOT1管脚,复位后,STM32与上述两种方式类似,从系统存储器地址0x1FFF F000开始执行代码。系统存储器存储的其实就是STM32自带的bootloader代码,在bootloader中提供了UART1的接口,通过此接口可以将用户所需的程序代码下载到主Flash中,下载完毕后,此时程序代码已经存储在主Flash当中,这时切换启动模式(从主Flash启动),复位后所执行的就是刚刚下载到Flash中的代码了。