什么ISP?什么是IAP?

[复制链接]
9159|78
 楼主| 聚沃科技 发表于 2024-7-13 11:27 | 显示全部楼层 |阅读模式
做单片机开发的工程师经常会听到两个词:ISPIAP,但新手往往对这两个概念不是很清楚,今天就来和大家聊聊什么是ISP,什么是IAP
一、ISP
ISP的全称是:In System Programming,即在系统编程,该操作是通过MCU厂商出厂BootLoader来实现,通过ISP可以对主flash区域进行擦除、编程操作,还可以修改芯片的选项字节等。我们来看下GD32F30x用户手册中引导模式:
图片1.png
通过BOOT引脚可以让MCU有不同的引导模式,其中将BOOT0接高,BOOT1接低,此时上电后,MCU跑的是引导装载程序,该程序就是GD公司MCU出厂固化的BootLoader。简单而言就是,在这个模式下,MCU是在跑一段程序的,这个程序可以让你通过MCU上的一些固定接口如串口、USB等来实现对主flash区域等的操作,而通过这个程序进行主flash的烧写过程就是ISP。一般而言,ISP都需要一些上位机来配合操作,GD官方的是All-in-one工具:
图片2.png
二、IAP
IAP的全称是:In Applicatin Programming,即在应用编程,该操作需要工程师自己写BootLoader来实现。IAP需要两段程序:一段在主flash最开始的地方,为用户BootLoader
图片3.png
另一段在主flash中的其他区域,为APP,比如保存在0x08008000地址的程序:
图片4.png
MCU刚上电时,会执行用户BootLoader程序(需要注意:这里需要选择将BOOT0接低,也就是让从主flash中启动),工程师需要在用户BootLoader中实现接收数据并对非本程序所在地址flash区域编程的功能,这样用户将APPbin文件发给用户BootLoader程序,BootLoader程序将APP的数据写到特定的地址中,比如0x08008000开始的地址,这样就实现了通过用户BootLoader烧录APP的功能。烧录完成后,用户BootLoader程序中需要实现一个跳转指令,让程序直接跳到APP中,这样崭新的APP程序就跑起来啦。上面这一整个流程,就叫做IAP
好了,现在小伙伴们知道什么是ISP,什么是IAP了吗?还有不懂的,欢迎评论区留言哦,悄悄说一句,我们有GD各系列的用户BootLoader Demo程序哦。

教程由GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网,GD32MCU技术交流群:859440462

评论

怎么获取你们的GD各系列的用户BootLoader Demo程序呀?  发表于 2024-9-29 08:19
tpgf 发表于 2024-7-18 12:01 | 显示全部楼层
这两种方式下哪种是我们最常用的呢
paotangsan 发表于 2024-7-18 12:40 | 显示全部楼层
ISP和IAP所使用的硬件接口是一样的吗
wakayi 发表于 2024-7-18 13:22 | 显示全部楼层
在应用编程的方式下的硬件连接是什么 样的呢
xiaoqizi 发表于 2024-7-18 13:58 | 显示全部楼层
可以批量的对芯片进行在应用编程吗
wowu 发表于 2024-7-18 21:41 | 显示全部楼层
除了这两种方式以外还有其他编程的方法吗
renzheshengui 发表于 2024-7-18 22:13 | 显示全部楼层
我们最常用的启动模式就是主flash存储器启动吧
Dongchen3 发表于 2024-7-22 16:35 | 显示全部楼层
ISP是烧录,IAP是升级,这么基础的东西都不懂,有被笑到
d1ng2x 发表于 2024-7-25 14:58 | 显示全部楼层
ISP和IAP是与微控制器编程和固件更新相关的两个术语。ISP,即在系统编程,是一种允许用户在微控制器已经安装在电路板上并且系统正在运行的情况下对其进行编程的技术。这意味着你不需要将微控制器从电路板上取下来,就可以对其进行固件更新或编程。ISP通常通过微控制器的调试接口(如JTAG或SWD)或者通过特定的通信接口(如UART、SPI、I2C等)来实现。IAP,即在应用编程,是一种特殊的ISP形式,它允许用户在微控制器正在执行应用程序的同时对其进行编程。IAP通常涉及到在微控制器的闪存中保留一部分空间用于存储新的固件,然后通过应用程序代码来管理固件的下载和更新过程
ex7s4 发表于 2024-7-25 16:00 | 显示全部楼层
ISP的优点在于便利性:无需拆卸微控制器即可进行编程。
q1ngt12 发表于 2024-7-25 18:33 | 显示全部楼层
我觉得ISP比较好,主要是减少了生产过程中的步骤,降低了成本
lamanius 发表于 2024-7-25 19:47 | 显示全部楼层
IAP可以支持在不中断系统运行的情况下进行固件更新。
tax2r6c 发表于 2024-7-25 21:30 | 显示全部楼层
其实IAP可以通过用户界面或网络接口来触发固件更新。
su1yirg 发表于 2024-7-26 09:00 | 显示全部楼层
我挺喜欢使用IAP的,主要是其支持远程固件更新,这对于无法物理访问的设备尤其有用
w2nme1ai7 发表于 2024-7-26 10:22 | 显示全部楼层
ISP通常指的是在微控制器已经安装在电路板上但可能没有运行应用程序的情况下进行编程。IAP则更进一步,指的是在微控制器正在运行应用程序的同时进行编程
t1ngus4 发表于 2024-7-26 11:18 | 显示全部楼层
在实际应用中,ISP和IAP通常都需要特定的硬件支持和软件协议来实现。对于开发者来说,了解如何实现ISP和IAP是确保产品可维护性和可升级性的重要技能
suw12q 发表于 2024-7-26 15:00 | 显示全部楼层
还是用IAP吧,比较灵活而且方便,更新还容易
zhizia4f 发表于 2024-7-26 17:30 | 显示全部楼层
其实ISP可以在产品部署后进行固件更新,修复bug或增加新功能
shenxiaolin 发表于 2024-7-29 22:13 | 显示全部楼层
感谢分享
地瓜patch 发表于 2024-7-31 15:43 来自手机 | 显示全部楼层
isp用过,iap还没用过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

170

主题

190

帖子

13

粉丝
快速回复 在线客服 返回列表 返回顶部