玩单片机的同学都应该听所说IAP、ICP和ISP这几个词

● ICP(In Circuit Programing)在电路编程

● ISP(In System Programing)在系统编程

● IAP(In applicating Programing)在应用编程

1、ICP(In Circuit Programing)

使用过STM32单片机的小伙伴一定知道,STM32单片机配套了一套编程工具,那就是ST-LINK。

使用对应厂家的软件以及仿真器都可以烧录程序,目前主流的有Jtag(Joint Test Action Group)以及SWD(Serial Wire Debug)接口。而ICP编程就是以SWD接口进行的。

下图为Jtag接口和SWD接口的区别:

执行ICP功能,仅需要3个引脚RESET、ICPDA、ICPCK。RESET用于进入或退出ICP模式,ICPDA为数据输入输出脚,ICPCK为编程时钟输入脚。用户需要在系统板上预留VDD、GND以及这三个脚。

官方给了详细的描述,ICP是指“在电路编程”,PC上运行的软件“NuMicro ICP编程工具”透过SWD的端口更新晶片内部APROM、LDROM、数据闪存(DataFlash)和目标用户配置字(Config)芯片。

2、ISP(In System Programing)

ISP是指“在系统上编程”,目标芯片使用USB/UART/SPI/I²C/RS-485/CAN周边接口的LDROM引导代码去更新晶片内部APROM、数据闪存(DataFlash)和用户配置字(Config)。

3、IAP(In applicating Programing)

IAP就是通过软件实现在线电擦除和编程的方法。IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。

4、具体案例

下面,我们以烧录过程中使用的烧录工具以及具体案例,详细介绍这三种烧录方式:

(1)ICP使用SWD接口进行烧录程序。常用的烧录工具为J-Link、ST-Link、Nu-Link;与之配套的烧录软件为J-Flash、NuMicro_ICP_Programming_Tool、st-link utility。

(2)ISP是使用引导程序通过USB/UART等接口进行烧录的,首先就是需要有BoodLoad程序。最常见的烧录方式就是学习8051单片机时使用的STC-ISP烧录工具了。

(3)IAP就是通过软件实现在线电擦除和编程的方法,没有使用任何工具,仅仅是通过软件的方法来更新Flash中的数据。

讲述一个案例,那就是通过4G模块来远程更新程序。将Flash分成两块区域,第一块为Boodload程序,第二块区域存放的是应用程序APP。4G模块和目标板通讯,通讯中包含是否更新的位,如果主板接收到需要更新的位,就往Flash中写入一个标志位,比如'P',之后程序跳到第一段程序Boodload程序中执行,首先判断Flash中的是否有更新程序的标志位'P',如果有则通过规定的协议进行更新应用程序中的程序,更新完毕后清除Flash中的更新标志位,跳转到应用程序中去执行。如果没有更新程序标志位‘P’,跳到应用程序执行。

5、总结

ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。

ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。

IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。

单片机三种烧录方式ICP、IAP和ISP相关推荐

  1. 嵌入式 - 单片机三种烧录方式 ISP, IAP, ICP 简述

    更新历史 20220315 首次创建文档,就三种 flash 编程方式进行了简单的概念介绍与归类: 20220319 增加 ISP IAP 的差异说明: 文章目录 引言 IAP 方法依赖 ISP 进入 ...

  2. 单片机三种烧录方式ISP、IAP和ICP有什么不同?

    关注+星标公众号,不错过精彩内容 编排 | strongerHuang 微信公众号 | 嵌入式专栏 学习单片机的同学,或多或少都听说过ISP.IAP和ICP,都是对单片机进行编程,下面简单来说下这几个 ...

  3. 单片机ISP、IAP和ICP几种烧录方式的区别

    单片机ISP.IAP和ICP几种烧录方式的区别 玩单片机的都应该听说过这几个词.一直搞不太清楚他们之间的区别.今天查了资料后总结整理如下. ISP:In System Programing,在系统编程 ...

  4. 今日说“法”:FPGA的三种配置方式

    今日说"法":FPGA的三种配置方式 欢迎大侠来到FPGA技术江湖新栏目今日说"法",当然,在这里我们肯定不是去研究讨论法律法规知识,那我们讨论什么呢,在这里我 ...

  5. 安川伺服总线通讯方式_plc通讯方式有哪三种?plc常见的三种通讯方式

    原标题:plc通讯方式有哪三种?plc常见的三种通讯方式 PLC = Programmable Logic Controller,可编程逻辑控制器,一种数字运算操作的电子系统,专为在工业环境应用而设计 ...

  6. KALI的三种安装方式

    前言 在本文中,我将详细的讲述kali的三种实现方式的优缺点(虚拟机.便携式存储介质.物理机),以及安装方式,文中所使用的工具和镜像链接也会放在开头. 链接 kali镜像包下载地址: Get Kali ...

  7. OLED显示屏驱动:8080并口,IIC,SPI三种驱动方式

    本文介绍了对OLED的几种驱动方式,8080并口,IIC,SPI三种驱动方式,采用的单片机是STM32F407. 文章目录 一.OLED驱动原理介绍 二.8080并口驱动方式 三.IIC驱动方式 四. ...

  8. 分布式锁简单入门以及三种实现方式介绍_徐刘根的博客-CSDN博客

    原文地址 rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmled ...

  9. Hive metastore三种配置方式

    Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适合生产环境.Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore. 一.本地d ...

  10. python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)

    树的实现采用queue的形式: 树的三种遍历方式(广度优先白能力法):先序遍历(根左右),中序遍历(左根右)以及后序遍历(左右根) ######################P6.4 数据结构### ...

最新文章

  1. 前端面试http和https的区别
  2. mybatis中mysql流式读取_MyBatis读取大量数据(流式读取)
  3. SAP屠夫---折旧在13-16调整期间的烦恼
  4. Simulink之不可控整流电路
  5. IDC商人应不应该给客户提供服务器测试?```
  6. 第一篇SCI (IF5),心得交流(写的字数很多),希望多多交流!
  7. Windows API串口编程
  8. ARM TrustZone技术简介
  9. ipad查看本地文件html文件在哪里,ipad文件夹在哪里?小编手把手教你找到ipad文件夹在哪里...
  10. 织梦后台怎么上传mp4视频到网站中
  11. C++知识整理系列(五)—— auto自动类型
  12. (FortiGate)飞塔防火墙过滤指定会话并清理
  13. mysql产品分类_MySQL习题1 一对多实例 产品和分类
  14. docker安装mysql8 并且忽略大小写问题解决
  15. 思途旅游CMS短信宝短信插件
  16. android 高德地图方向指向不变问题分析
  17. 机械振动信号13个频域指标
  18. java的逻辑判断和结构
  19. 列空间(column space)和零空间(null space)
  20. 【工具】收藏夹在谷歌和Edge浏览器中间的导出和导入

热门文章

  1. android打开关闭gps定位服务,【Android】使用模拟位置,关闭模拟位置后GPS启动不了...
  2. 计算机怎么连接佳能打印机驱动,佳能打印机怎么连接电脑
  3. android扫码支付宝ofo,ofo等六大单车接入支付宝扫码,一半共享单车可分享支付宝流量...
  4. 第五版fmea表格_FMEA第五版: 新版 DFMEA六步法解析
  5. 发那科机器人注油_安川机器人加油保养流程
  6. C/C++图书管理系统
  7. 计算机网络学习(四)网络层
  8. 区块链:Ethereum Casper 101
  9. python画散点图、折线图
  10. 广州自由自在进口食品进入寻常百姓家