STM32程序的常用的两种烧录方式
STM32有两种常用的烧录方式,一是利用JLink和STLink调试下载,二是利用串口线直接下载
一、ISP(In-System Programming)
在系统编程,使用引导程序(Bootloader)加上外围UART/SPI等接口进行烧录。
二、ICP (In-circuit programmer)
在电路编程,使用SWD/JTAG接口。
这两种方式有什么区别以及怎么用我们得先了解一下STM32的地址映射
看Block0中有两块标为橙色的,Flash和System memory
Main memory 主存储区、存放代码的地方
System memory系统存储区、System memory是STM32在出厂时内置Bootloader的地方
STM32的启动方式
STM32有两个BOOT引脚,通过配置不同的高低电平,可以让单片机从不同的地址开始运行。
BOOT0=0, BOOT1任意(JLink和STLink调试下载:ICP)
通常我们是在Main memory 主存储区(0x0800 0000)运行程序,BOOT0引脚拉低即可。
这种情况,KEIL软件给STM32烧录程序,就是直接在这个地址烧录,烧录完,直接在这个地址处运行。
BOOT0=1,BOOT1=0(串口直接下载:ISP)
这种情况就用在使用串口方式给STM32烧录程序,这时单片机从系统存储器(0x1FFF 0000)启动,运行的是出厂预置的BootLoader程序,可以接收串口发来的程序,并将其写入Main memory(0x0800 0000),程序烧录完成后,再将BOOT0引脚拉低,Main memory(0x0800 0000)处运行刚烧录的代码了。
BOOT0=1,BOOT1=1
这种情况是从内存中启动,内置SRAM(也就是STM32的内存中),既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。
STM32程序的常用的两种烧录方式相关推荐
- python高级语言翻译成机器语言的方式有两种_将高级语言编写的程序翻译成机器语言程序,采用的两种翻译方式是( )。...
展开全部 正确答案是A, 编译和解释. 原因是:编译和解释是将高级语言636f70793231313335323631343130323136353331333366306466编写的程序翻译成机器语 ...
- YUV常用的两种保存方式_YUY2和YV12
转自:http://blog.csdn.net/yiheng_l/article/details/3784874 简单的说,YUV的格式在存储上有两类布局: Packed和Plannar.Packed ...
- hadoop学习之----------IntelliJ IDEA上实现MapReduce中最简单的单词统计的程序(本地 和 hadoop 两种实现方式)...
idea上的maven中的pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xm ...
- 常用的两种spring、mybatis 配置方式
转载自http://blog.csdn.net/qh_java/article/details/51601139 在之前的文章中总结了三种方式,但是有两种是注解sql的,这种方式比较混乱所以大家不怎么 ...
- Ajax提交Form表单的两种简单方式
在现在的项目开发中,ajax的应用是必不可免的,最为基本的就是利用ajax的异步处理方式来向后台提交数据.关于ajax提交表单我利用到了两种简单的方式. 方法一## 先获取表单里面的数据,再通过aja ...
- PHP教程:WebService最常用的两种方法
国内用PHP写WebService的真的很少,网上资料也没多少,公司的项目开发过程中,经历了不少这方面的东西,写出来以供大家参考(谢谢老农提供的WSDL和程序文件) 客户端 代码: 01. 02. ...
- 最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)
From: http://www.cnblogs.com/lanxuezaipiao/p/3703988.html 导读 1. 什么是序列化? 2. 为什么要序列化?好处在哪里? 3. C++对象序列 ...
- 程序的两种执行方式,静态语言和脚本语言
程序的两种执行方式,静态语言和脚本语言 文章目录 程序的两种执行方式,静态语言和脚本语言 编译和解释 静态语言和脚本语言 编译和解释 编译:将源代码一次性转换成目标代码的过程.(编译一次后,若需再次执 ...
- 在Vue-cli脚手架中引入图片最常用的两种方法
CommonJS API定义了很多普通应用程序(主要指非浏览器的应用)使用的API,require就说其中之一,我们通常需要在组件中引入图片时,可以在Data里使用这个方法require(" ...
最新文章
- uniapp 子组件 props拿不到数据_Vue组件间的通信
- android 16进制 全透明_你有几种实现方案Android 设备唯一标识?
- 67 cookie常用方法
- CSS:盒子模型和清除float浮动的三种常用方法
- 知道一个数组某个index对应的值 不知道下标的情况下删除该值
- ashx中Response.ContentType的常用类型
- 如何用python写数值运算_如何理解Python的数值运算?
- mysql数据库mha_MySQL高可用性大杀器之MHA
- 李宏毅 || 机器学习笔记一
- 软件测试基础理论选择题(含答案)
- 记录自己装Ubuntu18.04+Win10 1803双系统,采用UEFI启动模式
- 洛谷Java入门级代码之分汽水
- 西瓜书学习之绪论部分
- 英文字母的大小写互换,将所有都变成小写,所有都变成大写 位运算实现
- 看我骚操作‘破解’某查查app的sign以及某眼查的Authorization!
- 苹果浏览器(Safari浏览器)打开网页“不安全”警告的解决方案
- mac笔记本部分按键失灵
- QGIS软件安装和汉化
- Java温故而知新-递归
- 数据结构__树的学习及宠物店功能实现