ISP,IAP与OTA下载

(63条消息) STM32的升级--ICP/ISP/IAP以及Ymodem协议分析_iap传输协议_shadow3D的博客-CSDN博客

(63条消息) CW32 自举程序中使用的 ISP 协议_isp协议_武汉芯源半导体的博客-CSDN博客

(63条消息) STM32 ISP升级设计(HAL完整例程及下载界面软件)_PegasusYu的博客-CSDN博客

(63条消息) bootloader学习笔记---第一篇以stm32为例_stm32bootloader例程_Embedded learner的博客-CSDN博客

STM32_IAP详解(有代码,有上位机) (qq.com)

(22条消息) STM32CubeMx开发之路—在线升级OTA_stm32ota升级例程_iot 小胡的博客-CSDN博客

(22条消息) 关于STM32的IAP超详细图文解说_stm32 iap_Eric__zh的博客-CSDN博客

(22条消息) 如何修改stm32起始执行地址_stm32修改启动地址_Eric__zh的博客-CSDN博客

(22条消息) 【嵌入式】基于串口的IAP在线升级详解与实战1----IAP功能设计_公子无缘的博客-CSDN博客

MCU: ARM启动中的分散加载 - 知乎 (zhihu.com)

(22条消息) stm32 KEIL软件设置程序烧写起始地址_alfredseng的博客-CSDN博客

(22条消息) [012] [STM32] 代码重定位与清除BSS段深入分析_stm32 bss段_柯西的彷徨的博客-CSDN博客

ISP

(In System Programable) 是指在系统编程,以前烧录bin代码需要专用的烧录器,需要将芯片从板子上取下来,烧录完成后,再焊回板子上,十分麻烦。所谓的ISP就是无需烧录器也无需将单片机从板子上取下来的烧录方法,所谓的在系统就是在PCB板子这个系统上进行烧录。 STM32就支持ISP,ISP本身也是一个协议,用以引导程序下载

STM32的ISP

STM32的ISP下载是通过串口实现的,那么自然就需要有对应的程序去引导文件从串口烧录进来,那么这些程序就储存在系统存储器区,具体的位置可以参考储存器章节,因此如果我们要实现ISP,需要将boot引脚设置为从系统存储器区启动,**这一段BootLoader程序源码是没有开源出来的,用户是不可修改的。此后才可以使用ISP功能去下载程序到flash中,下载完成后,我们再将boot引脚调整,使STM32的启动模式,更改为从用户闪存存储器区启动,也就是运行flash的用户代码,即我们此前所烧录的一个代码,此外还有一个内置SARM区,这个区是用来实现调试器功能的,该启动方式参考

STM32的所有串口都支持ISP吗?

不是的,只有支持的串口才支持,具体的需要根据文档选择,如F103是使用串口1,文档名称为AN2606,下载链接如下:

https://www.st.com/content/ccc/resource/technical/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf

为什么正点原子等开发板使用ISP下载时无需手动设置boot引脚

因为开发板使用了USB转ttl芯片,上位机烧录软件(FlyMcu)可以设置该芯片的两个引脚状态切换,通过这两个引脚与电路配合实现boot引脚的自动切换,完成一键烧录

ISP协议有具体的描述文档吗,如果编写引导下载的上位机可能需要用到

该文档名字为AN3155,可以在ST的官网搜索到:

USART protocol used in the STM32 bootloader - Application note

Last updated