首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >单片机ISP、ICP和IAP编程方式,你知道吗?

单片机ISP、ICP和IAP编程方式,你知道吗?

作者头像
不脱发的程序猿
发布2025-07-04 14:51:14
发布2025-07-04 14:51:14
3830
举报

前段时间有朋友在群里聊到单片机烧录程序什么情况要切换BOOT0、BOOT1?自己设计板子,不知道如何选择。

图片
图片

这种情况就是对单片机的启动条件分不清。

单片机程序烧录主要有三种方式:ISP(在系统编程)、ICP(在电路编程)和IAP(在应用编程)。每种方式各有优劣,适合不同场景。

1、ISP(在系统编程)

ISP方式利用单片机出厂内置的Bootloader,从系统存储区域启动,通过UART/SPI等串行接口接收外部固件,再写入主存储区。主要步骤如下:

  • 将BOOT0拉高(1),BOOT1拉低(0),MCU复位进入内置Bootloader。
  • 通过串口工具(如STC-ISP、FlyMcu)发送.hex/.bin文件至单片机。
  • Bootloader接收并写入主Flash(0x0800 0000起)。
  • 烧录完成后,将BOOT0拉低(0),复位后从主Flash运行用户程序。

ISP方式免拆板;适合批量远程或现场在线升级;烧录速率受串口波特率限制;仅支持预置协议。

2、ICP(在电路编程)

ICP方式通过JTAG或SWD调试接口,使用专用烧录器(如J-Link、ST-Link)直接访问并擦写主Flash,无需Bootloader。主要步骤如下:

  • 将BOOT0拉低(0),MCU复位进入主存储启动模式。
  • PC端IDE(Keil)或辅助软件(J-Flash)连接调试器。
  • 一键下载:擦除→烧录→校验→启动。

ICP方式速度快;可单步调试;烧录灵活;但是需外置下载器;产品现场不便使用;成本较高。

3、IAP(在应用编程)

IAP在主存储区预留两段:一段为开发者自定义Bootloader,另一段为用户APP。

图片
图片

MCU启动先运行Bootloader,根据条件(按键/标志/网络)判断是否需从外部获取新固件并写入APP区域。主要步骤如下:

  • MCU复位,先执行自定义Bootloader。
  • 检查升级标志,无需升级则跳转至APP,否则启动升级流程(如通过UART/Wi-Fi下载新固件)。
  • Bootloader将新固件写入APP区后跳转执行。

IAP方式灵活;可实现无线远程升级;无需外部工具;但是设计和实现复杂;占用Flash空间。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 美男子玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、ISP(在系统编程)
  • 2、ICP(在电路编程)
  • 3、IAP(在应用编程)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档