引脚图祭天
一.启动模式
主闪存存储器:STM32内置的Flash,一般使用 ICP(JTAG或者SWD)模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序,可以理解为电脑的软件安装在这里。
系统存储器:芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。它是一个ROM区,这个区域的内容在芯片出厂后不可修改。
选用这种模式启动,可以从串口下载程序到Flash中,可以理解为电脑的系统安装在这里。
内置SRAM:芯片内置的RAM区,没有程序存储的能力,可以理解为电脑的内存条。
在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,如下:
BOOT1=x BOOT0=0 从主闪存启动,这是用户使用的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这是厂家使用的工作模式。
BOOT1=1 BOOT0=1 从内置SRAM启动,这是调试使用的工作模式。
二.ICP(In Circuit Programing)
使用对应厂家的软件以及仿真器都可以烧录程序,目前主流的有Jtag(Joint Test Action Group)以及SWD(Serial Wire Debug)接口。而ICP编程就是以SWD接口进行的。
三.ISP(In-System Programming)
指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。ISP是一种通用的程序下载方式。
Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader
Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中
程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动,可以看到,利用串口下载程序还是比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验。
注:软件左下角需手动选择复位和进BootLoader方式。本方案RTS直连单片机复位脚,DTR直连单片机Boot0引脚,因此软件下载逻辑需要满足:控制RTS低电平复位单片机,控制DTR高电平进入BootLoader。
四.IAP(In applicating Programing)
---------------------------------------------------------------------------------------------------------------------------------
尊重原创,标明出处。
原文有些混乱,此帖为防删整理更正重发帖。错误难免,欢迎指正。
原文链接:https://blog.csdn.net/weixin_47205363/article/details/130980210