启动模式
主闪存存储器区存放用户设计的代码,代码烧录到这里,一般情况在正常工作时需要把STM32设置为从这里启动。
系统存储器区用来实现ISP功能的。
内嵌SRAM区用来实现调试器调试功能的。
ISP
ISP一般由PC机通过串口把bin/hex文件直接烧写到单片机内部flash中。
ISP下载步骤:
第1步:先设置BOOT1和BOOT0从系统存储器区启动
第2步:通过串口发送要下载的hex文件给STM32
第3步:接收到hex后,当已烧录到flash中
第4步:设置BOOT1和BOOT0为从主闪存存储器启动,复位重启执行刚下载的hex。
IAP
IAP的核心是用户需要在自己的应用程序中去操作单片机内部flash的控制器的寄存器,实现对内部flash的烧录功能。IAP的时候用户程序通过串口(usb、ethernet)来接收PC发送过来的bin/hex文件,然后将它烧录到内部flash中去完成IAP。完成后再次启动后就会从主闪存存储器区执行。一般实现IAP需要人为的将主闪存存储器区分为2部分:bootloader程序和app程序。
ISP下载
有三种启动模式:
1.主闪存存储器启动
2.系统存储器启动
用来实现ISP的。
3.内置SRAM启动
如图:
下载过程:
硬件连接:需要Rx、Tx、GND三根线 连接单片机 PA9、PA10、GND。
(一般设置BOOT1=0,BOOT0=1)
(部分STM32没有BOOT1,只需要置BOOT0):
开机正常运行工作—>先将BOOT0设置成高电平(此时原来程序任然执行)---->按复位键(原来程序不执行),即将NRST变成低电平再变成高电平—>设置FlyMcu进行下载。
下载完成后,记得设置从主闪存存储器启动(一般设置BOOT1=0,BOOT0=0)。
DTR和RTS是串口芯片的两个引脚,是否配置这两个需要看下载电路。