这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 单片机ISP、ICP和IAP编程方式,你知道吗?

共1条 1/1 1 跳转至

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

菜鸟
2025-07-15 17:35:02     打赏

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



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



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





ISP(在系统编程)


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


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



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




ICP(在电路编程)


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


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



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




IAP(在应用编程)


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



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


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



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




关键词: 单片机     ISP     ICP     IAP    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]