单片机烧录程序怎么分类?单片机程序烧录的3种方式
说起给单片机烧录程序,大家应该都不陌生吧,我最早接触单片机是从51单片机开始的,型号是STC89C52RC,当时烧录程序就是用的下面这种烧录软件——STC-ISP。
这种方式,通过串口连接单片机,选择一个合适的波特率就可以烧录了。
后来学习STM32,编程时使用KEIL软件自带的下载按钮就能下载程序,方便了不少,但需要额外使用J-Link等下载器。
(相关资料图)
再后来,接触到产品研发,给已经发布出的产品升级,都是要靠远程无线升级的(想想看,产品已经到客户那里了,当软件需要升级时,要是还使用有线的方式烧录程序,得有多麻烦)
既然给单片机烧录程序的方式有多种,那烧录方式具体怎么分类呢?
可以分为3种:
ISP(In-System Programming)
在系统编程,使用引导程序(Bootloader)加上外围UART/SPI等接口进行烧录。
ICP (In-circuit programmer)
在电路编程,使用SWD/JTAG接口。
IAP(In-Application Programming)
指MCU可以在系统中获取新代码并对自己重新编程,即用程序来改变程序。
这3种烧录方式的原理是什么呢?在分析原理之前,需要先了解一下单片机Flash的访问地址,看看程序是烧录到哪个位置了。
单片机Flash在地址映射表中位置
下图是一张STM32F4xx的地址映射表,从0x0000 0000到0xFFFF FFFF,总计4Gbyte。单片机的片上Flash、片上RAM、片上外设以及外部扩展接口的访问地址,都被映射到这4Gbyte的范围之内。
这张图中,我们需要先注意下半部分
Main memory 主存储区通常,我们编写的代码,是放到主存储区的起始位置(0x0800 0000)开始运行的,烧录程序时,直接将程序烧录到这里即可(KEIL软件给STM32烧录程序的默认烧写地址就是0x0800 0000开始)
System memory系统存储区System memory(起始位置0x1FFF 000)是STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序 ,这是一块ROM,出厂后无法修改。
了解了程序的具体地址,还要看一下单片机的启动方式:
启动方式选择
STM32有两个BOOT引脚,通过配置不同的高低电平,可以让单片机从不同的地址开始运行。
BOOT0=0, BOOT1任意通常我们是在Main memory 主存储区(0x0800 0000)运行程序,BOOT0引脚拉低即可。
这种情况,KEIL软件给STM32烧录程序,就是直接在这个地址烧录,烧录完,直接在这个地址处运行。
BOOT0=1,BOOT1=0这种情况就用在使用串口方式给STM32烧录程序,这时单片机从系统存储器(0x1FFF 0000)启动,运行的是出厂预置的BootLoader程序,可以接收串口发来的程序,并将其写入Main memory(0x0800 0000),程序烧录完成后,再将BOOT0引脚拉低,Main memory(0x0800 0000)处运行刚烧录的代码了。
BOOT0=1,BOOT1=1这种情况是从内存中启动,内置SRAM(也就是STM32的内存中),既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。目前我还没用过这种方式,大家平时用这种方式的多么?
BOOT0 | BOOT1 | 启动方式 | 说明 |
---|---|---|---|
0 | × | 主闪存存储器 | 主闪存存储器被选为启动区域 |
1 | 0 | 系统存储器 | 系统存储器被选为启动区域 |
1 | 1 | 内置SRAM | 内置SRAM被选为启动区域 |
有了上面的了解,再来看一下ISP、ICP和IAP
ISP(串口烧录)
特点:
BOOT0 = 1,BOOT1 = 0启动地址:0x1FFF0000使用串口下载程序系统存储器(System memory)启动方式运行内置的Bootloader,将程序写入主存储区重启后,需要再将BOOT0拉低,从主存储区启动程序下图是ISP方式的烧录,使用FlyMcu这个软件,通过串口给STM32烧录程序
ICP(JTAG口烧录)
特点:
BOOT0 = 0,BOOT1 = x启动地址:0x08000000使用JTAG或者SWD模式下载程序主闪存存储器(Flash memory)启动方式,将程序在主存储区写入重启后也直接从这启动程序下图是ICP方式的烧录,使用JFlash软件或KEIL,通过J-Link给STM32烧录程序
KEIL软件的默认下载地址,就是从0x0800 0000 开始的。
IAP
IAP的原理与上面两种有较大区别,这种方式将主存储区又分成了两个区域(根据实际需要由开发者自行分配),0800 0000起始处的这部分,存储一个开发者自己设计的Bootloader程序,另一部分存储真正需要运行的APP程序。
单片机的Bootloader程序,其主要作用就是给单片机升级。在单片机启动时,首先从Bootloader程序启动,一般情况不需要升级,就会立即从Bootloader程序跳转到存储区另一部分的APP程序开始运行。
假如Bootloader程序时,需要进行升级(比如APP程序运行时,接收到升级指令,可以在flash中的特定位置设置一个标志,然后触发重启,重启后进入Bootloader程序,Bootloader程序根据标志位就能判断是否需要升级),则会通过某种方式(比如通过WIFI接收升级包,或借助另一块单片机接收升级包,Bootloader再通过串口或SPI等方式从另一块单片机获取升级包数据)先将接收到的程序写入存储区中存储APP程序的那个位置,写入完成后再跳转到该位置,即实现了程序的升级
标签:
相关推荐:
最新新闻:
- 双击我的电脑打不开怎么办?教你快速处理方法
- Windows8:什么语言在未来不会被淘汰?
- 新风系统到底应该怎么装?新风能解决什么问题?
- 全球首家!中国电信“全网通”手机来了|世界热门
- c和.h文件到底有什么区别?c和h文件的区别介绍
- 播报:InstallPackage报错怎么办?解析channel_v3.json文件出现的问题
- JSP基础教程:jspcms第一个JSP的扩展名是什么?
- 重装系统的若干问题 wgatray.exe文件系统使用指南
- 【安全生产】“GPS/北斗巡检系统”为“安全运营”保驾护航 视点
- 自助建站程序有seo优化吗?建站服务商服务器怎么选择?|世界球精选
- 如何安装旗舰版win7?教您win7旗舰版安装教程|天天热头条
- 世界热门:如何打开pdg文件?手把手教你打开PDG文件
- golang-java-serializer序列化算法解析|当前热文
- 哪个品牌的蓝牙耳机质量好?Bose、森海塞尔、索尼、Jabra等蓝牙耳机都不错
- iphone4s怎么换电池?iphone4s更换电池教程-焦点资讯
- 单片机烧录程序怎么分类?单片机程序烧录的3种方式
- 【python】Python中最常用的数据类型|播资讯
- mysql-h主机名-p密码库名C-lamp61数据库
- 基于HDRS平台的仓储远程监控系统——华辰智通
- 如何利用百度引擎进行网站宣传?网站宣传的核心与重点
- 如何申请注册163个人邮箱?163个人邮箱注册申请流程|环球新视野
- 焦点播报:电动车蓄电池坏了怎么办?蓄电池怎样修复?蓄电池修复步骤
- 紫外光激发使光诱导进入二苯并--萘酚的花菁形式
- 如何通过factory-girl去定义测试数据中的用户角色?
- 99宿舍网四六级成绩怎么查询?99宿舍网四六级成绩查询入口
- 启发式搜索算法解决八数码问题(C语言)珍藏版:每日简讯
- 【爬取红岭创投】存储在mysql数据库中的无头模式 当前速讯
- 每日热闻!世界十大杰出物理学家:牛顿、爱因斯坦、麦克斯韦上榜
- 笔记本摄像头驱动怎么安装?笔记本摄像头驱动安装方法
- python中的matplotlib:创建图表的绘图包:世界速看料
- 当前关注:联想y400n怎么样?霸气筋肉车风格联想y400n评测
- ibm笔记本故障如何维修?ibm笔记本故障维修方法 天天简讯
- 2019年运城高考状元名单公布:运城文理科状元是谁?
- 什么是环保硒鼓?使用中出现问题怎么办?|世界快资讯
- JUC是什么?java线程基础知识
- numpy基本教程:Numpy实现数组的逻辑运算_当前观点
- 东芝电视故障如何维修?东芝电视故障及维修方法介绍 全球通讯
- bot短期密集访问形成的流量高峰有哪些?如何解决?|天天微资讯
- 充电风扇哪个牌子好?充电风扇品牌推荐
- 如何通过bios调节风扇转速?合理调节风扇转速方法:天天观热点
- 天天观速讯丨迷你英雄无限无法连接服务器是什么原因?常见解决方案
- 信息:步步高手机短信铃声怎么设置?步步高手机短信铃声默认响铃为10秒
- 手机定位软件怎么设置?360手机助手教你一招
- seo入门知识有哪些?seo入门需掌握的基础知识
- 显示器色域检测软件怎么下载?显示器色域检测图拉丁版
- 茅台推出酒瓶装冰淇淋酷似飞天茅台:66元一瓶:热资讯
- 【剑灵力士】新版本力士职业天赋加点推荐 备战不删档-焦点
- 酷派7230如何刷机?酷派手机刷机流程详解-当前通讯
- 小天才宝贝电脑市场报价及市场评价推荐
- 《寓言之地》将于4月13日在Steam开启抢先体验测试
- 环球关注:外媒称网易暴雪分手 是因为网易“威胁”了科蒂克
- 《寓言之地》将于4月13日在Steam开启抢先体验测试
- 环球快报:十二届省委第二轮巡视完成反馈
- 理想汽车雷达在无人陵园显示全是人影 官方回应_每日视点
- 央企专业化整合精准提速-世界热资讯
- 环球观点:《GT赛车7》今日更新免费追加丰田豪华MPV
- 全球快看点丨《最后的生还者》PC版更新仍未解决卡顿等问题
- 资讯:Curved Lines展览征集稿件
- MINISFORUM NAB6迷你主机上架:i7-12650H准系统低至2599元:天天热议
- 固态PCIe转接卡5.9元
- 松下极简电吹风159元:天天快资讯
- 迪斯尼取缔元宇宙部门
- 怎样去除甲醛最好_怎样去除甲醛最有效
- PC《最后生还者:第一部》4080 4K帧率测试 DLSS效果出色
- 新一代高贵“亮机卡”!RTX 4050被曝6月发布:弱得不像话 动态焦点
- 天天热点评!PS+欧美服4月会免游戏公布 《麻布仔大冒险》等
- 《霍格沃茨之遗》成为2023年2月北美最畅销电子游戏_世界快看点
- Steam明年不再支持Win7、8!
- 接手机宾得望远镜889元_天天报资讯
- 透视上市券商年报:两融业务不乏亮点 仍需多维度补短板:每日热文
- 广宇发展:2022年营收34亿元,净利6.33亿元 | 年报快讯
- 斯坦福大学医院外科医生培训 白男占比0%引争议
- 环球今日报丨TGA红灵入侵少年再出现:送给甲亢哥梅西签名球衣
- 玲娜贝儿设计师遭裁员:已经累计为迪士尼公司工作22年-焦点快报
- 世界视讯!超过90%会员表示:如果没有XGP就不会尝试在玩的游戏