单片机烧录方式 -- IAP、ISP和ICP

这篇具有很好参考价值的文章主要介绍了单片机烧录方式 -- IAP、ISP和ICP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

背景

1 什么是ICP

2 什么是ISP

3 什么是IAP

4 总结


背景

对于51单片机,我们使用STC-ISP上位机软件通过串口进行程序的烧写;对于STM32系列单片机,我们既可以通过串口烧写程序,也能通过JLink或是STLink进行程序的烧写,那么这些烧写方式有什么区别呢?

1 什么是ICP

ICP(在电路编程 In Circuit Programming):使用SWD/JTAG接口进行烧录,如Jlink、STLink等烧录器进行烧录。

以下是一个针对Cortex-M3内核的下载框图,如果此时使用的是STM32F103系列单片机,上位机使用的是Keil,图中的调试主机(PC)可以认为是Keil,调试器可以认为是第三方工具JLink或者STLink,调试主机通过USB接口与调试器进行通信,调试器通过JTAG或者SWD接口与单片机进行程序的下载及调试。

单片机 isp iap,ARM系统,bootloader,IAP,单片机

2 什么是ISP

ISP(在系统编程 In System Programming):在bootloader编程,就是系统存储区。比如51单片机通过STC-ISP上位机软件烧写程序。

具备ISP的单片机必须有一块内部的FLASH区域,这个区域不允许用户使用,它通过boot pin的方式选择单片机复位之后PC指针是指向用户区域还是ISP区域。

这里以STM32F103系列单片机为例,查看用户手册2.4章节,分为BOOT1和BOOT0引脚,BOOT1和BOOT0引脚不同的电平,复位后PC指向的位置不同,如下所示:

单片机 isp iap,ARM系统,bootloader,IAP,单片机

查看闪存,发现《信息块》处有一个《系统存储器》,大小为2K,这个就是STM32F103的ISP程序存放的位置,此区域不允许用户修改(当然也没有权限修改),它用于使用芯片原厂的上位机软件或者第三方软件进行烧录使用。

单片机 isp iap,ARM系统,bootloader,IAP,单片机

下图是通过《STM32CubeProgrammer》上位机软件对STM32F103芯片进行连接的示意图,注意BOOT0高电平,BOOT1低电平,使用串口1。

单片机 isp iap,ARM系统,bootloader,IAP,单片机

3 什么是IAP

IAP(在应用编程 In Application Programming):在mainflash上面分两块区域,一个作为boot(系统存储区),一个作为app(用户存储区),具体实现就是在系统存储区把程序烧写完成,然后通过拨PC指针指向用户存储区,当然这个也是需要特定的上位机工具,一般来说很多厂商都提供IAP工具,也有很多第三方的上位机工具,IAP功能类似USB的DFU。

单片机 isp iap,ARM系统,bootloader,IAP,单片机文章来源地址https://www.toymoban.com/news/detail-856207.html

4 总结

  • IAP:所有单片机都支持的下载方式,IAP程序需要用户自己编写,并且取决于主Flash的大小,如果太小,不能装下IAP+APP程序,那么就不能使用IAP下载程序。
  • ISP:目前大部分单片机支持的下载方式,程序由芯片厂家提供,下载接口多为串口,也有USB、SPI。I2C等,借助芯片厂家的烧录工具进行烧写,比如51单片机的《STC-ISP》上位机,STM32单片机的《STM32CubeProgrammer》上位机等。
  • ICP:目前大部分单片机支持的下载方式,取决于芯片出厂是否预留下载接口,常见的下载接口有SWD和JTAG接口,如果存在这些下载接口,可以使用第三方下载工具,如JLink、STLink、DapLink进行程序的下载。

到了这里,关于单片机烧录方式 -- IAP、ISP和ICP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MCU】单片机从 keilC51 编程到 Proteus8.9 仿真再到 STC-ISP 烧录保姆级流程

    ① 安装 USB转串口驱动(CH340) ② 打开文件夹“单片机软件开发板USB转串口CH340驱动” ③ 双击安装程序“CH341SER” ④ “用户账户控制”点击“是” ⑤ 点击“安装” ⑥ 安装成功点击“确定”,然后点击“关闭” 至此,USB转串口驱动安装完毕。 ① 启动程序“Keil uVison5” ②

    2024年02月03日
    浏览(34)
  • STM32单片机IAP介绍

    1、什么是IAP? 首先区分下两个概念:ISP和IAP:         ISP:In System Programming (在系统中编程),通过芯片专用的串行编程接口对其内部的程序存储器进行擦写。         IAP:In Application Programming( 在应用中编程),通过调用特定的bootloader程序,对程序存储器的指定段

    2024年02月16日
    浏览(30)
  • 单片机IAP升级的一些问题与经验

    前阵子做项目时需要IAP升级,遇到了很多问题,我在此总结一下,避免后面再次踩到同样的坑。这个过程还是有些学问的,有时往往理论正确但是实践起来却遇到各种bug,需要好好研究,特别是对应单片机型号不同,也有很多地方需要修改。 本人使用的芯片型号是AT32F413CB,

    2024年02月03日
    浏览(30)
  • 51单片机入门(1)环境搭建(Keil+ISP)

    在学习51单片机之前,环境搭建是必不可少的一步,本文主要介绍Keil软件和STC-ISP软件的安装 本人只是一个普通的嵌入式低级(初级)玩家,文章主要针对新手,所以大佬要是发现文中有何不妥之处,还请口下留情,若能指出,我一定虚心改正 Keil C51是美国Keil Software公司出品

    2023年04月09日
    浏览(51)
  • STM32单片机实现固件在线升级(IAP)

    单片机的固件升级方式有很多种, 1、ICP:In Circuit Programing,简单说就是在单片机开发时使用烧录器升级程序,比如使用J-Link烧录单片机程序。 2、ISP:In System Programing,在单片机内部实现了基于通信接口(如串口、I2C、SPI等等)的FLASH引导程序,配合厂家提供的烧录软件工具

    2024年02月13日
    浏览(45)
  • 单片机c51延时函数解析(isp自动生成)

    解析: 假设单片机的工作频率为125kHz,那么每个循环的时间为1/125000秒,即0.000008秒。因此,为了实现1ms的延时效果,需要执行125次循环,即125 * 0.000008秒。将0.001秒转换为毫秒,得到1ms,因此125 * 0.000008秒=0.001秒,即每个循环需要执行0.000008秒,需要执行125次循环才能实现1m

    2024年02月06日
    浏览(34)
  • 【嵌入式开发学习】__扒一扒单片机串口IAP原理

    目录 一、什么是IAP? 二、串口IAP实验 1. 实验说明 2. 工程说明 IAP工程: LED工程: 3. IAP源码说明  (1)主函数: (2)主菜单函数Main_Menu (3)下载程序功能函数SerialDownload  4、下载验证 (1)下载IAP程序  (2)通过IAP程序引导下载LED程序 (* ̄︶ ̄)创作不易!期待你们的 点

    2024年02月20日
    浏览(39)
  • 基于STM32单片机BOOTLOADER通过串口升级程序IAP——APP方案

                            此方法前提是你得有一个EEPROM         我用的单片机是STM32F103ZET6 , 此单片机FLASH容量为512KB; 在此单片机里面FLASH的起始地址是0X8000000,BOOT作为引导加载程序一般都是从这个地址开始,单片机一上点默认会从这个地址开始运行,所以将自己

    2024年02月04日
    浏览(42)
  • STC8H系列单片机IAP实现不停电下载(通过串口)

    在使用串口往STC单片机烧录程序时,需要冷启动,先点击下载再上电。这样做有一定的缺点。首先,一些特殊的外围电路要求一直保持有电状态,有些客户需求我们能远程操控设备就可以升级程序,而不需要去现场断电设备。其次,频繁的断电上电操作也比较麻烦。 STC 单片

    2024年02月03日
    浏览(54)
  • 单片机二进制bin(map、反汇编)文件分析(IAP程序跳转,PC指针指向问题分析)

       .bin 文件就是二进制文件(binary file),这种文件只包含机器码。所有的数据都是机器可以执行的指令码、指令参数或者常量数据,不包含其它调试信息。加载到内存或者支持XIP(就地执行)的存储器中规定好的加载地址之后直接从规定好的运行地址开始运行即可。   

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包