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

这是网上最容易看到的讲解,但理解上面的知识对于新手十分不友善,特别是在画最小系统的时候,画错了就是苦等一周的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和原理图文件的开源)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值