stm32单片机程序烧写方式ISP和IAP区别

在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。

ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。

ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。

1、字义区别:

ISP:In-System Programming 在系统编程

IAP:In Application Programming 在应用编程

2、工作方式:

ISP:

用烧写器(比如j-link,st-link)将code写入Flash,芯片在目标开发板,不脱离系统,即称在系统编程。

优点:

芯片固件自带的bootloader无需开发人员编写;

缺点:

1、固定的通讯方式,一般为串口;

2、固定串口号stm32为uart1;

3、需要额外电路(按键或自动下载电路)

IAP升级的基本原理:

MCU的IAP升级是指通过软件方式对MCU的固件进行升级,而无需通过硬件操作。该方法使用MCU内部的自带BootLoader来完成升级过程。其基本原理如下:

  1. MCU的Flash内存被划分为两个区域,一个是应用程序区,另一个是BootLoader区。

  2. 初始状态下,BootLoader区为空,应用程序区包含了设备的初始固件。

  3. 当需要进行升级时,新的固件将被下载到设备中。

  4. 设备重启后,BootLoader检测到新的固件存在,将其从外部存储器加载到Flash的应用程序区。

  5. 升级完成后,设备将启动新的固件。

比如:

汽车电子上比较常见的can总线:

优点:

理论可以实现单片机支持的任何接口的程序(正常量产产品很有用;)

无需额外下载电路,软件命令的方式进入下载模式;

缺点:

1、需要开发人员编写特定的bootloader,实现比较麻烦;

2、需要特定的上位机配合;

PS:IAP的引导程序必须通过ISP方式下载。

3、应用场合:

ISP:升级程序必须使用烧写器,且编程人员必须到场;不过好一点的是不必拆机器了。

IAP:只需要将固件发给维修工程师,由维修工程师去更新;如果有网管系统的话,用网管下载一切搞定,人不用跑来跑去。

相关推荐
廷华电子22 分钟前
SSI接口板设计
stm32·电机控制
是翔仔呐25 分钟前
第11章 显示外设驱动:I2C协议OLED屏、SPI协议LCD屏字符/图片/中文显示
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
是翔仔呐3 小时前
第13章 SPI通信协议全解:底层时序、4种工作模式与W25Qxx Flash芯片读写实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
是翔仔呐3 小时前
第14章 CAN总线通信全解:底层原理、帧结构与双机CAN通信实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
沐欣工作室_lvyiyi4 小时前
基于单片机的智能浴室(论文+源码)
stm32·单片机·嵌入式硬件·智能浴室
二本咕咕-机械转码4 小时前
STM32是怎么跑起来的?启动流程 + 时钟树一次讲透(面试高频)
stm32·嵌入式硬件·面试
Heartache boy5 小时前
野火STM32_HAL库版课程笔记-TIM通道输出应用之PWM实现呼吸灯
笔记·stm32·单片机·嵌入式硬件
桌面运维家5 小时前
解决Windows 10打印机脱机:端口、驱动、网络故障排除
windows·stm32·单片机
liwulin05065 小时前
【ROS2】【ESP32S3纯透传方案】ESP32S3+WINDOWS+VMware+ROS2+YDLIDA X导航完整落地方案
windows·stm32·单片机
廷华电子7 小时前
STM32H743+AX58100学习板
stm32·嵌入式硬件·电机控制·ethercat·cia402