0
收藏
微博
微信
复制链接

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

2026-01-29 14:55
312

d237e00b59340cda121484e4cb624d.jpg


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


64a5fa113c90255c70494588bde971.jpg

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


46626a7d66ffdc9e406975680042c9.jpg


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。


fc01482f60ba17fd18de7b5826689b.jpg


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

  • MCU复位,先执行自定义Bootloader。

  • 检查升级标志,无需升级则跳转至APP,否则启动升级流程(如通过UART/Wi-Fi下载新固件)。

  • Bootloader将新固件写入APP区后跳转执行。


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


登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

美男子玩编程

多领域、有深度的开发者交流平台

开班信息