对于stm32的启动,涉及到boot0和boot1的取值如下图所示。(所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。)

对上图进行分析,

(1)当boot0接地,boot1任意时,stm32会从主闪存取开始执行程序,这里边的程序就是我们一般编写好的用户程序。

如果选用这种模式启动,那么可以选择使用SWD/JTAG直接下载程序到从主闪存。

(2)当boot0接高电平,boot1为0时,stm32会从系统存储区开始执行程序,它属于一块ROM,用户不能操作,在出厂之前厂家会在这里边烧写相关的bootload.

一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到主闪存存储器中。但是这个下载方式需要以下步骤:

Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader

Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中

Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动

可以看到,利用串口下载程序还是比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验。

(3)SRAM很显然程序要是烧进去掉电之后就会丢失,所以采用这种模式启动,一般会用作程序的调试。

假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,在将程序下载到SRAM中。

boot0和boot1相关推荐

  1. stm32 Boot0,Boot1引脚设置

    Boot0,Boot1引脚设置? (1) Boot0设置为0后,代码将从主Flash当中启动,就我们目前所编程的地方启动,只要程序正常,上电之后都是可以正常工作.这一般作为ISP 程序下载仿真烧写.一 ...

  2. STM32关于BOOT0和BOOT1设置,去掉Debug后完成硬件独立运行。

    BOOT0和BOOT1 STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的 Flash. 2)SRAM = 芯片内置的 RAM区,就是内存啦. 3)系统存储器= ...

  3. stm32数据手册boot_STM32问题集之BOOT0和BOOT1的作用

    一.功能及目的 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序. BOOT1=x BOOT0=0 // 从用户闪存启 ...

  4. 启动模式,BOOT0和BOOT1详解

    在画STM32的电路图的时候,关于STM32的启动方式纠结了一下,现有的参考设计都是在STM32的启动选择引脚BOOT0和BOOT1上使用了跳帽,用以人工选择STM32的启动方式,但是在实际应用中这种 ...

  5. 关于单片机上的BOOT0和BOOT1

    STM32一共有三种启动模式,在ST官网上下载的RM0008中 对应的中文翻译如下: 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以 ...

  6. STM32 BOOT0与BOOT1 的应用原理

    很多网友在用 keil 下载 程序时,明明下载线连接正常,偏偏程序就是无法下载,还提示芯片未连接.此时可能出错的原因就在BOOT0上. 首先对BOOT0与BOOT1如何连接及连接方式介绍一下. STM ...

  7. BOOT0 和 BOOT1

    STM32开发首先的了解STM32的启动过程,否则你会云里雾里,半天程序在板子上跑不起来. STM32  三种启动模式对应的存储介质均为芯片内置的,他们是: 1)用户闪存 = 芯片内置的Flash,这 ...

  8. STM32三种启动模式 boot0 boot1

    STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存=芯片内置的Flash. 2)SRAM=芯片内置的RAM区,就是内存啦. 3)系统存储器=芯片内部一块特定的区域,芯片出厂时在 ...

  9. STM32 BOOT0连接不当造成死机

    一下内容转自:http://www.360doc.com/content/14/0326/10/6624919_363817465.shtml STM32的三种启动方式依靠BOOT0和BOOT1两个引 ...

最新文章

  1. jupyter lab文档位置默认system_九大神招,让Python里数据分析神器Jupyter,完美升华...
  2. c语言多线程多个传入参数,关于ssl多线程参数的传递
  3. php函数get和set,php中外部类调用_get函数和_set函数的方法
  4. Hibernate实体JSONObject化时遇到的问题
  5. java将mysql数据写入到txt_java 追加写入数据到txt
  6. 万博java_构建高效的企业级Java应用系列(一)架构篇——1
  7. STM32工作笔记0018---JLINK程序下载
  8. cap流程图_冲压工艺流程图+PFMEA+CP范例(中英文)
  9. 基于mybatis的数据库脱敏
  10. 为啥程序员下班后只关显示器从不关电脑?
  11. Android 网页无法打开 net:ERR_UNKNOWN_URL_SCHEME
  12. java开源规则引擎比较_常用规则引擎比较分析
  13. linux ikev1切换到ikev2,IKEv2与IKEv1的差异.doc
  14. 求助vmbox更新之后打不开了
  15. PostgreSQL 连接(JOIN)
  16. 神奇宝贝五分类:网络自定义
  17. java中栈的两种实现
  18. Springer投稿流程——Multimedia Tools and Applications
  19. 2020.2.13 C组模拟赛题解
  20. LeetCode题目笔记--12.整数转罗马数字

热门文章

  1. 通透人生:少操心他人,多注重自己
  2. Python 爬取百度 搜索风云榜 新闻并 自动推送 到邮箱
  3. Action层, Service层 ,modle层 和 Dao层的功能区分【和语言无关,只是为了了解这几个层是干什么的】
  4. 程序员的修炼之路(突破)
  5. 神经网络的起源和发展,人工神经网络发展历史
  6. 【数据采集与处理】Anaconda 和 PyCharm环境配置以及常用python库安装
  7. Revit2016 笔记05
  8. 网站打开缓慢或打不开的原因
  9. Ws2_32.lib是做什么用的
  10. UVALive 3351 Easy and Not Easy Sudoku Puzzles 位运算~判断简单数独