当前位置: 首页 > news >正文

STM32程序下载和启动方式

目录

  • 1 BOOT引脚配置和下载说明
  • 2 关于串口下载方式
  • 3 关于一按复位就跑代码
  • 4 关于下载调试速度
  • 5 关于三种启动方式
    • 5.1 FLASH启动
    • 5.2 系统存储器器启动
    • 5.3 SRAM启动
  • 6 关于程序的三种下载方式

1 BOOT引脚配置和下载说明

BOOT0BOOT1程序运行ST-Link下载串口下载启动说明
xx×××
0x×用户闪存存储器,也就是FLASH启动
10××系统存储器启动,用于串口下载
11×1×SRAM启动,用于在SRAM中调试代码

在这里插入图片描述

2 关于串口下载方式

一般情况下如果我们想用用串口下载代码,则必须配置BOOT0为 1,BOOT1为 0

3 关于一按复位就跑代码

如果想让 STM32 一按复位键就开始跑代码,则需要配置BOOT0为 0,BOOT1为 x(即BOOT1 随便设置)。

4 关于下载调试速度

如果USB数据线比较差,或者使用了杜邦线来连接单片机和下载器,那么可能会出问题,此时,可以通过降低这里的速率来试试。
在这里插入图片描述

5 关于三种启动方式

//本章说明2

5.1 FLASH启动

  就是不用出厂自带的bootloader,直接运行flash里的程序,将flash分为两部分,第一部分充当第二部分的bootloader,第一部分干嘛的呢?第一部分用来接收bin文件并将其写到第二部分中,第二部分才是我们MCU真正要运行的代码。

5.2 系统存储器器启动

  最常用的一种就是系统存储器启动,STM32芯片出厂的时候系统内部存储器自带bootloader程序,负责下载程序的时候对芯片内部的flash进行擦除与编写,ISP下载就是通过串口与bootloader将程序烧写到flash中(科普:MCU的代码是存储在flash当中的,所以一般芯片说有多少k的flash就代表能存储多少代码)。

5.3 SRAM启动

  SRAM叫做静态随机存取存储器,SRAM启动一般是编写一些小程序用来扫描所有I/O口,然后再板上测量信号,借此检测所有的焊接是否正常。这样不必触动Flash中的程序。有一个案例是说买了个板子用ISP下不了程序,发现flash锁了,就使用SRAM启动将flash解锁。

如果还想更细致了解,可以参考这片博文;一探究竟STM32的三种启动模式

6 关于程序的三种下载方式

//本章说明2

一般程序的下载有三种方法:ISP(In System Programing)、ICP(In Circuit Programing)、IAP(In applicating Programing)。

  • ISP一般是通过串口(USB线)下载程序。
  • ICP是通过SWD(几根线)下载程序。
  • IAP是让你的MCU可以通过所有的MCU支持的通讯接口或者方式(TTL、RS232、RS485、I2C,SPI,CAN等等)下载程序。

  1. 该下载方式下,不可以勾选Reset and Run,参见上图。 ↩︎

  2. 该章节照抄了CSDN博主「CRUD搬砖党的神」的原创文章,遵循CC 4.0 BY-SA版权协
    原文链接:https://blog.csdn.net/weixin_43593698/article/details/108303376 ↩︎ ↩︎

http://www.lryc.cn/news/34324.html

相关文章:

  • 基础01-ajax fetch axios 的区别
  • Android Execution failed for task ‘:app:mergeDebugJavaResource
  • spring事物源码分析
  • 炫龙游戏本Win10系统总是蓝屏崩溃怎么办?
  • 华为OD机试题,用 Java 解【数字加减游戏】问题
  • C++ 手写一个高性能json生成与解析器
  • java——了解反射
  • The Sandbox 中的独特体验——《奥米加》
  • 76 Python写入csv文件时出现空行_newline参数解决
  • 高等数学——定积分和不定积分
  • imx6 usb增强信号强度
  • 深入理解性能压测工具原理
  • Java的概述和运行方式
  • 【C语言】每日刷题 —— 牛客
  • JavaEE课程实践-Servlet的部署(tomcat服务器)
  • Java 中的拆箱和装箱
  • 从0开始自制解释器——实现多位整数的加减法计算器
  • (12)C#传智:File类,泛型,字典,FileStream,StreamReader,多态
  • Dubbo的服务暴漏与服务发现源码详解
  • Python 的IDE——PyCharm
  • 01 C语言使用链表实现队列(Queue、FIFO)模块
  • 2.2操作系统-进程管理:前趋图、前趋图与PV操作
  • 凤凰游攻略
  • Nginx 高可用方案
  • Linux基本指令
  • Linux系统基础命令(二)
  • 【C++】C++11——简介|列表初始|简化声明|nullptr与范围for|STL中的变化
  • Python -- 函数
  • Pytorch中utils.data 与torchvision简介
  • 学习 Python 之 Pygame 开发魂斗罗(十)