专栏首页嵌入式大杂烩【STM32笔记】ISP下载的原理是什么?

【STM32笔记】ISP下载的原理是什么?

上一篇笔记分享了STM32的串口IAP实例:STM32串口IAP分享。其中,下载IAP程序时用ISP的方式进行下载。这里的ISP又是什么呢?

ISP方式下载程序原理

ISP:In System Programing,在系统中编程

在STM32F10xxx里有三种启动方式:

以ISP方式下载程序时需要把STM32的BOOT0引脚置1、BOOT1引脚置0,即从系统存储区(System Memory)启动。为什么设置从System Memory启动就可以使用串口来下载我们的程序呢?那是因为在芯片出厂前ST官方已经把一段自举程序(BootLoader程序)固化到这一块存储区。对于STM32F103ZET6来说,System Memory的起始地址为0x1FFFF000,可在芯片手册的内存映射图里找到:

其通过串口来接收数据并烧写到用户闪存存储器的起始地址(0x08000000)。只能烧写到这个地址,若keil里设置的地址不是这个地址,则编译出来的文件将烧录不成功。

用户闪存,即User Flash,同时也称为Main Flash。

这一段BootLoader程序源码是没有开源出来的,用户是不可修改的。我们在上一篇笔记的IAP实验中,IAP程序通过FlyMCU软件进行烧录,烧录的地址就是0x08000000

注意:不同系列不同型号的STM32固化的BootLoader是不同的,即使用的通讯接口是不同的。如STM32F1xxx系列只支持USART1:

STM32F4xxx系列只支持USART1、USART3、CAN2等接口:

其他型号的BootLoader支持的接口可查看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

这里,关于数据协议的内容不展开讨论,有兴趣的朋友可自行研究。

IAP程序与ISP程序有什么不同?

从基本功能来看,IAP程序与ISP程序所做的事情好像是一样的,都是引导加载程序,所以网上有很多文章把IAP程序与ISP程序都称为BootLoader程序,要注意区分。但是,ISP与IAP还是有点区别的。

STM32内部Flash分为两部分,System FlashUser Flash。上电之后执行哪个Flash里的程序有boot脚来控制。

System Flash内存放的是ST官方编写的自举程序(ISP程序),我们是没有办法改变的。

User Flash是我们可以使用的Flash空间,我们编写的代码就是要烧录到User Flash中。我们可以把User Flash分为两部分,前面一部分空间用于烧写我们编写的IAP程序,后面一部分用于烧写我们编写的应用程序。其中,IAP程序用于更新我们的应用程序。

ISP程序用于把我们编写的程序更新到0x08000000地址上,如果我们的产品中的程序有IAP程序+应用程序,则此时0x08000000地址存放的程序就是IAP程序。ISP程序、IAP程序、应用程序的关系示意图如下:

如果我们的产品中的程序只有应用程序,则此时0x08000000地址存放的程序就是应用程序。ISP程序、应用程序的关系示意图如下:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • STM32F429的USB是个坑?

    拿到这样的需求,我们当然是先得保证通讯正常。于是我找了一个USB例程与一个CAN例程,分别调试验证。

    正念君
  • 【C语言笔记】分享一个C语言测试程序模板

    平时需要测试一些比较模糊的知识点,或则想要验证一些函数时,我们常常会建一个test.c文件,然后在这个文件里写我们的测试代码,测试完毕后常常会删掉该文件。下次再...

    正念君
  • 基于STM32+ATT7022的单相用电器分析监测装置

    大学期间,电子类的比赛比较重要的比赛应该就是每年暑假的省/国家级大学生电子设计竞赛吧,其中省赛是偶数年,国赛是奇数年,小编都有参加过,上一篇分享了我们团队参加2...

    正念君
  • 小程序背后:巨头们各自为阵的四大移动新生态

    “如今小程序的DAU(日活跃用户数量)已经超过了3.3亿,到明年年底,小程序的DAU可能会超过4.5亿。”阿拉丁创始人兼CEO史文禄,近日在其主办的第三届全球小...

    刘旷
  • 学员故事 | 0基础的我们,是这样做出小程序的(下)

    ? 嗨咯~ 我是N妹,这期给我们做分享的是“人人都会微信小程序”的优秀学员——“小亭同学”,快来看看她是如何从0到1做出小程序的吧~ 学员说 大家好,我是小亭...

    腾讯NEXT学位
  • 提前曝光!微信官方悄悄告诉我们,这 3 个新能力即将开放

    随着小程序的持续窜热,商家和企业加速进入小程序生态,越来越多人「严阵以待」着小程序新能力的发布和微信关于小程序未来规划的描述。而在 11 月 21 日的公开课,...

    知晓君
  • 微信小程序3大主要功能场景:APP功能迁移、线下门店、公众号变现

    自小程序2017年1月9号正式上线以来,不论是中小商家,还是各大品牌巨头,都在抢占小程序这波风口,打造属于自己的小程序。截至目前,全国正式上线小程序超过150万...

    速成应用小程序开发平台
  • 非常实用的25个小程序知识,看完记得收藏!

    在运营公众号过程中,经常收到用户对小程序方面问题的反馈,针对用户经常提到的问题,虎哥今天整理出25条,以方便大家解决小程序在日常应用中遇到的问题。

    微宝阁
  • 小程序 · 一周报

    官方称从微信6.7.2客户端版本开始,为便于用户方便使用小程序,web-view组件在全屏模式下,将统一显示导航栏。开发者在全屏模式下,无需再自行绘制 web-...

    极乐君
  • 微信小程序会是web前端人才的春天吗?

    摘要 微信小程序于2017年1月9日凌晨正式上线,它是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,也体现了“用完即走”的理念。微信小程序的...

    IT大咖说

扫码关注云+社区

领取腾讯云代金券