<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://w.electrodragon.com/w/index.php?action=history&amp;feed=atom&amp;title=STM32_Boot</id>
	<title>STM32 Boot - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://w.electrodragon.com/w/index.php?action=history&amp;feed=atom&amp;title=STM32_Boot"/>
	<link rel="alternate" type="text/html" href="https://w.electrodragon.com/w/index.php?title=STM32_Boot&amp;action=history"/>
	<updated>2026-06-08T21:28:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://w.electrodragon.com/w/index.php?title=STM32_Boot&amp;diff=26418&amp;oldid=prev</id>
		<title>Chao at 11:53, 22 May 2020</title>
		<link rel="alternate" type="text/html" href="https://w.electrodragon.com/w/index.php?title=STM32_Boot&amp;diff=26418&amp;oldid=prev"/>
		<updated>2020-05-22T11:53:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Mode ==&lt;br /&gt;
* Boot0 connect via 10K to GND for normal mode, to 3.3V for upload mode.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! BOOT 1 !! BOOT 0 !! Note !! EN&lt;br /&gt;
|-&lt;br /&gt;
| x || 0 || 从用户Flash 启动，这是正常的工作模式。|| &lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 从系统存储器启动，ISP Bootloader， 这种模式启动的程序功能由厂家设置。|| Enter into SWD / Serial / CAN or DFU uploading mode&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 ||  从内置内存SRAM启动，这种模式可以用于调试。|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=500px, heights=300px&amp;gt;&lt;br /&gt;
File:20161013200911458.png&lt;br /&gt;
File:20161013201051365.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Main Flash memory'''&lt;br /&gt;
是STM32内置的Flash，一般我们使用JTAG或者SWD模式下载程序时，就是下载到这个里面，重启后也直接从这启动程序。&lt;br /&gt;
System memory&lt;br /&gt;
从系统存储器启动，这种模式启动的程序功能是由厂家设置的。一般来说，这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域，STM32在出厂时，由ST在这个区域内部预置了一段BootLoader，也就是我们常说的ISP程序，这是一块ROM，出厂后无法修改。一般来说，我们选用这种启动模式时，是为了从串口下载程序，因为在厂家提供的BootLoader中，提供了串口下载程序的固件，可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤：&amp;lt;br /&amp;gt;&lt;br /&gt;
* Step1:将BOOT0设置为1，BOOT1设置为0，然后按下复位键，这样才能从系统存储器启动BootLoader&lt;br /&gt;
* Step2:最后在BootLoader的帮助下，通过串口下载程序到Flash中&lt;br /&gt;
* Step3:程序下载完成后，又有需要将BOOT0设置为GND，手动复位，这样，STM32才可以从Flash中启动&lt;br /&gt;
可以看到，利用串口下载程序还是比较的麻烦，需要跳帽跳来跳去的，非常的不注重用户体验。&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Embedded Memory'''&lt;br /&gt;
内置SRAM，既然是SRAM，自然也就没有程序存储的能力了，这个模式一般用于程序调试。假如我只修改了代码中一个小小的地方，然后就需要重新擦除整个Flash，比较的费时，可以考虑从这个模式启动代码（也就是STM32的内存中），用于快速的程序调试，等程序调试完成后，再将程序下载到Flash中。&amp;lt;br /&amp;gt;&lt;br /&gt;
要注意的是，一般不使用内置SRAM启动(BOOT1=1 BOOT0=1)，因为SRAM掉电后数据就丢失。多数情况下SRAM只是在调试时使用，也可以做其他一些用途。如做故障的局部诊断，写一段小程序加载到SRAM中诊断板上的其他电路，或用此方法读写板上的Flash或EEPROM等。还可以通过这种方法解除内部Flash的读写保护，当然解除读写保护的同时Flash的内容也被自动清除，以防止恶意的软件拷贝。&amp;lt;br /&amp;gt;&lt;br /&gt;
一般BOOT0和BOOT1跳线都跳到0(地)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== STM32F042 ====&lt;br /&gt;
* STM32F042 don't have BOOT1&lt;br /&gt;
* Switch BOOT0 from GND to 3.3V to enter into DFU mode&lt;br /&gt;
[[category: STM32 SDK]]&lt;/div&gt;</summary>
		<author><name>Chao</name></author>
	</entry>
</feed>