0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机烧录程序的几种常见方法

Dp1040 来源:玩点嵌入式 作者:玩点嵌入式 2022-11-24 09:46 次阅读

最近看到一个小伙伴问了一个比较基础的问题,大概就是问:单片机烧录程序常见方法有哪些?

下面就来说下常见的三种烧录程序的方法:ISP、IAP和ICP,以及它们的区别。

ISP

ISP:In System Programing,在系统编程

ISP 是指可以在板级上进行编程,也就是不用拆芯片下来,写的是整个程序,一般是通过 ISP 接口线来写。

支持ISP的芯片一般在芯片内部固化了一段(用ISP升级的)boot程序。

比如:使用STC-ISP对STC芯片编程,利用Flash loader对STM32编程等。

d384a298-6b94-11ed-8abf-dac502259ad0.png

ICP

ICP:In Circuit Programing,在电路编程。

ICSP:In-Circuit Serial Programming,在电路串行编程。如:对EEPROM编程等。

ICP编程方式网上各有说法,从字面含义(在电路)来说,所有处于编程的芯片都需要上电,都处于电路中。不严格来说利用J-Link、ST-Link、e-Link32等工具进行编程也属于在电路编程(ICP)。

d3a55d44-6b94-11ed-8abf-dac502259ad0.png

在维基百科中,ISP(在系统编程),也称为在电路串行编程(ICSP)。

IAP

IAP:In applicaTIng Programing,在应用编程。在程序运行的过程中进行编程(升级程序,更新固件)。

IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。 [来自:百度百科]

IAP通信口IAP的通信口有许多种:UART串口、ETH以太网I2C、SPI......等。按理说只要能传输数据的通信口都能实现IAP的功能。

IAP的应该非常广泛,可以参考我之前分享的一篇文章:STM32官方IAP例程详细说明,以及Demo演示

d3b77d12-6b94-11ed-8abf-dac502259ad0.gif

ISP 与 IAP 的区别

1.打个比喻吧

1、ISP 是把房子拆了再重造一间,那么在造好之前当然是不能住人的啦!

2、IAP 是在造好的房子里边进行一些装修,当然人可以继续住啦!

2.应用场合

1,ISP 程序升级需要到现场解决,不过好一点的是不必拆机器了;

2,IAP 如果有网管系统的话,用网管下载一切搞定,人不用跑来跑去,

3.ISP 和 IAP 的工作原理

ISP 的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过 SPI 或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。

IAP 的实现相对要复杂一些,在实现 IAP 功能时,单片机内部一定要有两块存储区,一般一块被称为 BOOT 区,另外一块被称为存储区。单片机上电运行在 BOOT 区,如果有外部改写程序的条件满足,则对存储区的程序进行改写操作。如果外部改写程序的条件不满足,程序指针跳到存储区,开始执行放在存储区的程序,这样便实现了 IAP 功能。

4.ISP 和 IAP 的优点

ISP 技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。

IAP 技术是从结构上将 Flash 存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。

ISP 的实现一般需要很少的外部电路辅助实现,而 IAP 的实现更加灵活,通常可利用单片机的串行口接到计算机的 RS232 口,通过专门设计的固件程序来编程内部存储器,可以通过现有的 INTERNET 或其它通讯方式很方便地实现远程升级和维护。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620825
  • ISP
    ISP
    +关注

    关注

    6

    文章

    457

    浏览量

    50843
  • IAP
    IAP
    +关注

    关注

    2

    文章

    161

    浏览量

    23964
  • ICP
    ICP
    +关注

    关注

    0

    文章

    65

    浏览量

    12485
  • 烧录
    +关注

    关注

    8

    文章

    221

    浏览量

    35191

原文标题:单片机烧录程序的几种常见方法

文章出处:【微信号:玩点嵌入式,微信公众号:玩点嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机烧录程序怎么分类

    说起给单片机烧录程序,大家应该都不陌生,我最早接触单片机是从51单片机开始的,型号是STC89C52RC,当时
    发表于 07-22 10:01 2267次阅读

    单片机烧录程序是怎样生成的

    背景与目的单片机严格按照烧录程序运行,帮助使用者检测、处理、输出电信号(加入一个点灯案例)。烧录程序由开发软件经写
    发表于 07-20 06:30

    单片机程序烧录的方式有哪几种

    单片机程序烧录方式具体怎么分类呢?单片机程序烧录方式的原理是什么呢?
    发表于 09-27 07:04

    给Atmega328P单片机烧录Arduino引导程序方法

    转接头Arduino Bootloader下载总结bootloader引导程序是什么犹如电脑主板的BIOS,开机或重启时先自动进行BIOS设置。有些单片机出厂时芯片厂商已经烧录好了引导程序
    发表于 11-24 08:01

    如何利用51单片机串口去烧录程序

    51单片机串口烧录程序方法51 单片机串口烧录程序
    发表于 12-08 08:14

    单片机程序烧录工具集合

    单片机程序烧录工具集合单片机程序烧录工具集合单片机
    发表于 12-28 15:34 101次下载

    单片机怎么烧录程序_单片机烧录程序步骤说明

    单片机烧录程序并不复杂,只需几个步骤就能搞定。
    发表于 01-09 16:33 9.7w次阅读
    <b class='flag-5'>单片机</b>怎么<b class='flag-5'>烧录</b><b class='flag-5'>程序</b>_<b class='flag-5'>单片机</b><b class='flag-5'>烧录</b><b class='flag-5'>程序</b>步骤说明

    单片机烧录程序方法步骤

    怎么给单片机烧录程序单片机keil程序烧录教程
    发表于 07-10 10:06 4.2w次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>烧录</b><b class='flag-5'>程序</b>的<b class='flag-5'>方法</b>步骤

    单片机程序常用的几种调试方法

    单片机程序常用的几种调试方法,这些调试方法都需要结合电脑上位机,以下我罗列一些调试方法
    发表于 07-17 09:31 1.2w次阅读

    Linux编译烧录51单片机程序

    Linux编译烧录51单片机程序
    发表于 11-21 14:36 14次下载
    Linux编译<b class='flag-5'>烧录</b>51<b class='flag-5'>单片机</b><b class='flag-5'>程序</b>

    串口 单片机 文件_51单片机(四)烧录程序

    串口 单片机 文件_51单片机(四)烧录程序
    发表于 11-23 17:06 18次下载
    串口 <b class='flag-5'>单片机</b>  文件_51<b class='flag-5'>单片机</b>(四)<b class='flag-5'>烧录</b><b class='flag-5'>程序</b>

    51 单片机串口烧录程序方法

    51单片机串口烧录程序方法51 单片机串口烧录程序
    发表于 11-25 18:21 118次下载
    51 <b class='flag-5'>单片机</b>串口<b class='flag-5'>烧录</b><b class='flag-5'>程序</b><b class='flag-5'>方法</b>

    单片机程序读取烧录方法记录

    用Jlink和J-Flash RAM读取单片机程序烧录单片机程序操作步骤读取单片机内部
    发表于 12-02 10:51 36次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>程序</b>读取<b class='flag-5'>烧录</b><b class='flag-5'>方法</b>记录

    MCU批量生产下载程序几种常见方法

    MCU批量生产下载程序几种常见方法
    的头像 发表于 10-24 17:22 1002次阅读
    MCU批量生产下载<b class='flag-5'>程序</b>的<b class='flag-5'>几种</b><b class='flag-5'>常见方法</b>

    运行Python程序几种常见方法

    Python是一种高级编程语言,具有简单易学,易于阅读和调试的特点。当你完成了一个Python程序之后,你需要运行它以检查程序是否按照预期工作。下面是运行Python程序几种
    的头像 发表于 11-28 15:32 470次阅读