BOOT0和BOOT1作用的说明(基础向)

  • Post author:
  • Post category:其他


这是网上最容易看到的讲解,但理解上面的知识对于新手十分不友善,特别是在画最小系统的时候,画错了就是苦等一周的PCB。通常在商品化的单片机上会直接留出排针让用户选择,但对于萌新,那是相当痛苦,不知道怎么办。




知识点补充


自举空间:       可以理解为单片机电源打开后,首先执行代码的地方。

主flash:          可以理解为程序运行中不进行运算的代码存储的地方。

系统存储器:此存储器中有厂家出厂就写好的代码,用户无法修改,该代码运行后可以用数据线进行下载程序。

嵌入式SRAM:可以理解为程序运行中要运算的代码存储的地方。

举个例子进行说明:

int a=1;
while(1)
{
    a=a+1;
}

要知道单片机是靠一个个指令执行的,像while语句相比较与a=a+1是不需要运算的代码,所以保存在主flash中,而变化的a=a+1;以及定义语句int a=1;存储在RAM中,也就是变量以及运算的地方都在RAM进行,而之所以int a=1;也存储在RAM中,是因为int型的a会在RAM中占两个字节且初始值为1(0x 0000 0001),执行一次a=a+1后,a变成2(0x 0000 0010),道理显而易见。详细见

FLASH与RAM在单片机中的作用




三种模式讲解



①BOOT1=任意电平,BOOT0=0

②BOOT1=0,BOOT0=1

③BOOT1=1,BOOT0=1。

首先要明白,不同的启动方式会影响到程序的下载方式。

第一种模式,就只能选择常见的STLINK,JTAK进行程序的烧录。按下复位键就可以运行自己写的程序,不需要改变启动方式。

第二种模式,只能选择数据线下载,下载完成后,需要手动调到第一种模式,复位后才会运行自己写的程序。其实这种操作就相当于给刚买的电脑装系统,电脑自带一个最原始的系统帮助用户安装新系统。总之十分麻烦而且下载速度非常慢。

第三种模式,方便调试,怎么个方便法,在收集了大量资料后发现并没什么用。详细见

STM32 SRAM启动,调试


总结,强烈建议用STLINK,JTAK之类的下载器,同时启动方式选模式一,又快又能调试。具体实践可参考

STM32F103C8T6核心板AD的制作过程(附加PCB和原理图文件的开源)



版权声明:本文为qq_54995462原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。