关于MCU的烧录,下载与其他接口的比较(一)
今天呢,犯了一个很严重的错误,我不知道这会产生什么样的影响,但我知道,如果我以后再没有具体的了解,仔细认真地观察,认证,只会滑到无底的深渊。做技术来不得半点虚假,切记一知半解,凡事都要弄得清楚明白,认识东西是有顺序的,从简单到困难,从外观,到内部,一个东西起什么样的作用,为什么会起这样的作用,也是很重要的,一直以来,我都认为自己是一个很较真的人,但最近发现,我都没有把把这优点用到正地方,好了,开始今天的正题,今天,讲的是我犯的一个错误,一个技术不该犯得错误。
这篇文章是给自己提个醒,给自己一个承诺,不要马虎,不要想当然,也不要冲动,不要得过且过,学习不痛苦,那就不是学习,成长不痛苦,那叫什么成长。
好,上主题
众所周知,MCU都会有调试,烧录,下载的工具,比如JLINK,STLINK,NULINK,等很多,不同厂家,不同品牌几乎都会有他们自己烧录,下载的方式,那么今天我给大家讲讲从各种烧录器的历史,厂家,和他们的硬件部分的不同,至于软件部分,有些东西我也不是很清楚,所以,等我了解清楚之后,我在进行讲解。如果见到这篇文章得人恰好懂得这一部分,或者是有人愿意指导或一起学习,欢迎交流,我也要向您虚心受教,本文虽是经过仔细验证,但是总会有些纰漏,欢迎指正。
首先讲讲新唐的烧录方式:
再讲之前,有必要先讲讲ICP,IAP,ISP的关系

我之前也一直搞不太清楚他们之间的区别。今天查了资料后总结整理如下。
ISP:In System Programing 在系统编程
IAP:In applicating Programing 在应用编程
ICP:In Circuit Programing
在电路编程
区别:
1、ISP是把房子拆了再重造一间,那么在造好之前当然是不能住人的啦!
2、IAP是在造好的房子里边进行一些装修,装修的时候人还住在里面!
3、ICP是在电路编程,是LPC芯片的编程方式,相当于ATMEL的ISP,而LPC的ISP就相当于ATMEL的IAP了。
ISP是指可以在板级上进行编程,而不用把芯片拆下来放到烧写器中,即不脱离系统,所以称作“在系统编程”,它是对整个程序的擦除和写入,通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程。即使芯片焊接在电路板上,只要留出和上位机接口的串行口就能进行烧写。
IAP同样是在板级上进行编程,MCU获取新代码并对程序的某部分重新编程,即可用程序来改变程序,修改程序的一部分达到升级、消除bug的目的,而不影响系统的其它部分,烧写过程中程序可以继续运行,另外接口程序是自已写的,这样可以进行远程升级而不影响应用。IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。
ISP、IAP、ICP与传统烧写方式的区别
1)在开发阶段
改code时, 不再需要将MCU从板子上拔起来, 拿到烧录器上烧, 然后再装回去. 可以直接利用ISP/ICP Programmer做板上烧录, 为开发者提供了极大的便利性.
2)在量产阶段
客户可以采用”先焊到板子上再烧code”的方式, 将烧code的动作安排在生产线的某一站.
那么传统的方式 (先将code烧好再焊到板子上)有什么缺点?
传统的方式是这样的: 拆封–>从tray盘取出chip–>烧录–>把chip放回tray盘.
这样的流程比起上面建议的方式: 增加了烧录时间, 容易造成QFP包装的chip弯脚, 或忘了烧code即放回tray盘.
3)在成品阶段
已组装好的成品若要改code, 可以透过预留的接口, 利用ISP或ICP, 更新MCU, 不需要拆机.
什么是 IAP (In-Application Programming)?
IAP指的是, MCU在运行的状态下, 利用ISP的机制, 不透过外接工具 (例如: ISP Programmer) 的帮忙, 去更新APROM, DataFlash 或 CONFIG. 要实现这种功能,
系统必须有取得更新数据的能力, 例如: 处于某一种联机的状态.
(注: 有时候, ISP/IAP的分别并不是那么清楚!)
ISP的工作原理
ISP 的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。
ISP的优点
ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。
好回到正题,不过我要先问一个问题,你知道什么是SWD接口么?
你可能知道JLINK的JTAG接口,先来一张图,看看它们之间的对应关系:



关于STLINK的4SWIM四线接口我觉得有必要说明一下:
下面是由于STM8的SWIM接口只需要4根连接线,所以ST-LINK/V2连接至STM8目标板时需要注意连接位置。

关于SWD,SWIM和JTAG之间的区别与联系,弄清楚明白剩下的就好理解了。今天先到这里,后续我会补上,上一篇是关于N76E003的学习的第一篇,我会继续完善的。
本文参考链接:http://blog.csdn.net/u014124220/article/details/50829713
http://blog.csdn.net/lj9010/article/details/51861605
谁知道明天什么结果,我只要把当前事做好就够了,不管能不能得到我想要的,只要我天天都在往前走,就够了。
关于MCU的烧录,下载与其他接口的比较(一)的更多相关文章
- 关于MCU的烧录,下载与其他接口的比较(二)
单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU可取出这些指令重新执行.只读存储器(Read Only ...
- 【request_firmware】 linux内核下载模块固件接口【转】
转自:http://blog.csdn.net/magod/article/details/6049558 [-] 8 处理固件 1481 内核固件接口 1482 它如何工作 14.8. 处理固件 作 ...
- 如何应对POST方式下载文件的接口
jQuery的下载,需要承载一个插件去做 今天遇到一个问题,后台给的接口由于需要前端传入过多的参数,只能接受用post去下载文件.正常情况下第一反应是用xhr对象去发送post请求,结果并没有触发浏览 ...
- QT实现,通过URL下载文件的接口实现
今天来把坑填上. 具体就是提供一个URL,并通过这个URL下载文件. MyDownloader.h: #ifndef MYDOWNLOADER_H #define MYDOWNLOADER_H cla ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash X ...
- 一个失误导致微信下载图片接口Token失效
公司的应用调了一个微信上传下载图片的接口,本来在线上跑的好好的,什么问题没有,但是这两天总是不定时的出现下载下来的图片损坏,拿着Token和serverid去接口测试网页验证,返回的是Token失效了 ...
- asp.net 模拟CURL调用微信公共平台API 上传下载多媒体文件接口
FormItem类 public class FormItem { public string Name { get; set; } public ParamType ParamType { get; ...
- node.js:《接口实现文件的上传和下载》
使用node.js写上传文件和下载文件的接口 上传接口: 开始写接口前,我们先安装一个上传文件的插件:npm install multer 安装成功在package.json或package-lock ...
- 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南
NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP M ...
随机推荐
- C#中的委托应该定义在哪里
专业回答 千锋教育 中国移动互联网研发培训领导品牌 2016-01-08 14:28 需求情况而定,一般定义在与类定义平级部分,且用public修饰,便于外部的调用. 若定义于类的内部,则必须通过调用 ...
- 一款纯css3实现的机器人看书动画效果
今天要给大家介绍一款纯css3实现的机器人看书动画效果.整个画面完全由css3实现的绘制,没有使用任何图片元素.机器人的眼睛使用了动画元素.我们一起看下效果图: 在线预览 源码下载 实现的代码. ...
- 略过ftp利用samba共享
开发阶段每次通过ftp上传代码到服务器是件麻烦事,而且有时候一些小错误直接通过ftp在服务器上修改后,容易忘记在本地保存. 于是想到了网络共享,windows上直接挂载网络硬盘,这样就可以略过ftp了 ...
- ios的一些经验记录1
1.UITextAlignment ---> NSTextAlignment 2.找不到segue viewcontroller 与segue要对应 3.标题栏用NavigationContr ...
- Yii CDbCriteria 常用方法
一.一个sql拼装的情况 $criteria = new CDbCriteria; //函数方式 $criteria->addCondition("id=1"); //查询条 ...
- Phalcon学习-model
Model:表与表之间的关系:hasOne 一对一( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字 ...
- windows用命令行查看硬件信息
如何在windows系统自带命令查看硬件信息,怎样dos命令查看硬盘和内存/CPU信息?最直接的是:开始→运行→CMD打开命令提示符,在该窗口下输入systeminfo执行,即可看到几乎所有想知道的系 ...
- 上手并过渡到PHP7(3)——Uniform Variable Syntax到底统一了什么
PHP7 up and running 泊学原文链接泊学实操视频 Uniform Variable Syntax 在PHP 7提出Uniform Variable Syntax之前,我们大多数人可能都 ...
- java分布式集群
http://blog.csdn.net/guzicheng/article/details/11580841
- r指定位置插入一列
y<-1:4 data1 <-data.frame(x1=c(1,3,5,7), x2=c(2,4,6,8),x3=c(11,12,13,14),x4=c(15,16,17,18)) da ...