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

3)系统存储器= 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段 Bootloader,就是通常说的 ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个 ROM区。

在每个 STM32的芯片上都有两个管脚 BOOT0和 BOOT1,这两个 管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执 行程序,见下表:
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程 序功能由厂家设置。

BOOT1=1 BOOT0=1 从内置 SRAM启动,这种模式可以用于调试。

要注意的是,一般不使用内置 SRAM 启动(BOOT1=1 BOOT0=1),因为SRAM掉电后数据就丢失。多数情况下 SRAM只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到 SRAM中诊断板上的其他电路,或用此方法读写板上的 Flash 或 EEPROM 等。还可以通过这种方法解除内部Flash的读写保护,当然解除读写保护的同时 Flash的内容也被自动清除,以防止恶意的软件拷贝。一般 BOOT0和 BOOT1跳线都跳到 0(地)。只是在 ISP下载的情况下,BOOT0=1,BOOT1=0 ,下载完成后,把BOOT0的跳线接回0,也即BOOT0=0,BOOT1=0 。

插曲:笔者曾经做过一个项目,拿到一块别人的板子和程序来修改,后来做了块板子,烧录程序后发现:烧录后通过烧录工具的“烧录后运行”选项可以正常跑起来,但一旦使程序从FLASH开始运行,则跑不了了。后来发现别人板子上的MCU是烧录过boot的,而自己做的板子是没有烧录boot的,前者程序从0x8003000开始运行,后者程序实际从0x8000000开始运行,把0x8003000处开始运行的程序烧到0x8000000的板子上的结果就是:复位向量地址不正确,导致芯片无法启动,因为0x8003000的程序把中断向量表搬到了0x8003000处。

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

  1. stm32 Boot0,Boot1引脚设置

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

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

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

  3. STM32 BOOT0与BOOT1 的应用原理

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

  4. boot0和boot1

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

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

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

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

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

  7. STM32的日历读取、设置和输出

    一.RTC RTC (Real Time Clock):实时时钟 RTC是个独立的定时器.RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能.修改计数器的值可以重新设置当前 ...

  8. BOOT0 和 BOOT1

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

  9. 了解实时时钟RTC的原理并通过stm32实现STM32的日历读取、设置和输出

    文章目录 前言 一.RTC是什么? 1.定义 2.原理 二.配置项目 三.配置代码 1.重定向printf函数 2.效果(1) 3.添加星期 4.效果(2) 四.总结 五.参考资料 前言 硬件:stm ...

最新文章

  1. 2017-2018-1 20155332实验三 实时系统报告
  2. Nis服务器主从安装配置
  3. 关于SYSLINUX的一些重要描述摘录
  4. CF1413F. Roads and Ramen(树的直径,线段树)
  5. 电脑k歌软件_金麦客专业k歌app下载|金麦客专业k歌软件 手机安卓版v1.1.5.0 下载...
  6. zabbix计算型监控项函数last_zabbix 自定义key类型之计算(Calculated items)-阿里云开发者社区...
  7. 比亚迪汉鸿蒙系统测评_国产强强联合,比亚迪与华为联手打造的“汉”定制款华为P40亮相...
  8. Vue项目启动报错 error:cannot find module xxx
  9. bash之sed与awk初步
  10. python 3d绘图kmeans_使用python绘制3d的图形
  11. 中兴a2018拆机图片_中兴a2s拆机视频
  12. 这几个画流程图的软件值得你们收藏
  13. 【计算机毕业设计】030甘肃非物质文化网站的设计与开发
  14. 利用canvas画图片
  15. 美年旅游_跟团游_编辑跟团游
  16. 关于团队合作的一些看法
  17. 计算机的硬件组成(详)
  18. 录音艺术与计算机音乐文化,云南艺术学院文华学院
  19. 机器码计算机如何获取,怎么样获得计算机的机器码?
  20. 创建存储过程报错PLS-00410

热门文章

  1. FastJson乱序问题
  2. sqlserver ADO.net 查询数据库加锁,事务提交
  3. Motan的SPI机制实现分析
  4. bzoj 2809 Apio2012 dispatching
  5. C# 框架是什么?MVC是什么 ?工厂模式是什么?设计模式是什么?三层架构是什...
  6. LBWE 和SBIW的关系
  7. let 和 var 的区别
  8. [ webpack4 ] 配置属于自己的打包系统教程(最终篇)—— 环境配置篇
  9. 基于Windows环境下MyEclipse10快捷键总结
  10. Types of intraclass correlation coefficience (ICC)