ST MCU 提供了一个IAP功能,即STM32 in-application programming (IAP),这个程序通过ST 原始方式(比如常见的拉BOOT管脚进BOOT,然后进行升级)烧录至用户代码起始位置(0x8000000),作为第一级用户软件,有了这个第一级用户软件后,可以支持烧录用户第二级用户软件(App)、读取用户第二级软件、跳转执行第二级用户软件,其中烧录用户软件使用的协议是YModem协议。

这样开发者开发基于STM32的用户软件时可以将软件分成Boot+App两个部分,Boot 就是前面的第一级用户程序,App是第二级程序,也是用户真正做业务功能的程序,这样的好处是只需要通过手动拉管脚使MCU 进下载模式后烧录一次Boot软件后,后续再也不用手动拉管脚进行下载了,因为用户功能主要在APP中,更新APP 软件通过Boot这个第一级软件就行了,除非要更新Boot,其他则不需要。这种应用场景常常是这样的:一个最终的嵌入式产品是有外壳的,一般会将Debug 串口预留出来用于下载版本、抓日志、调试等,不会把ST原始下载进入下载模式需要短接的B00T Pin和3.3v Pin也外接,所以想要进行原始拉BOOT 进下载模式就会很麻烦,或成本很高,需要拆掉外壳漏出PCB板,这在实际发货后的产品中常常是不好操作的,所以Boot+App的模式就显得很重要了,这样在工厂生产时第一次升级时使用一次原始升级方式将Boot+App的全版本升级进行去,后续在更新版本只需要通过串口线升级即可;

如笔者开发的基于STM32F3/F4 的物联网设备,车载tBox、共享充电桩,智能锁等智能终端中就采用该方法,设备出厂时已经烧录了Boot和APP,后需要维护升级时只需要通过预留的串口线通过上位机进行App更新即可。

欢迎各位朋友讨论交流!

STM32FXX IAP 功能应用介绍相关推荐

  1. STM32实现IAP功能之一

    最近因项目需求要实现STM32的在线升级即IAP功能,先将这几天的学习体会和IAP的具体实现总结出来,分享给大家,希望对同样实现IAP的童鞋有所帮助,文中最后会上传名为STM32_Update.zip ...

  2. STM32通过USB实现Bootlader/IAP功能

    前沿: 最近在做STM32的USB Bootlader/IAP功能,也就是通过USB实现固件升级,本文介绍下实现的基本思路,希望对实现IAP的同学一个参考,改方法已经在产品中得到实际应用并验证是比较合 ...

  3. 高性能ORM框架XLinq功能详细介绍

    之前简单介绍了XLinq的一些功能,有很多功能都没有提到,现在给XLinq加了一些功能,这次把所有功能都介绍一遍. 设计目标 易用性 在使用一个框架的时候 应该没几个人会喜欢写一大堆的配置文件吧 也应 ...

  4. linux中bash的功能主要有,Linux系统中的Bash功能的介绍

    今天小编要跟大家分享的文章是关于Linux系统中的Bash功能的介绍.一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无 ...

  5. N点虚拟主机管理系统(For Windows2003/2008)功能及介绍

    N点虚拟主机管理系统是针对销售 主机.邮局.数据库等产品时效率低.管理难等问题而自主研发的集产品自动化开通.管理.续费.升级等功能为一体的软件系统.通过一年多的改进与运作,软件已具有功能强大.安全稳定 ...

  6. 06 ansible剧本功能实践介绍

    以下例子的配置文件 [rsync:children] rsync_server rsync_client[rsync_server] 192.168.1.5[rsync_client] 192.168 ...

  7. Excel的裁剪(trimming)(トリミング)功能使用介绍

    Excel的裁剪(trimming)(トリミング)功能使用介绍 ■前言 当一个画面很长时,我们在做文档时,我们如果把画面全部截取出来, 会占用很多篇幅,同时还不能突出重点. 那么,如何能解决这个问题呢 ...

  8. 同城服务小程序开发的好处和功能方案介绍

    同城服务小程序的好处就是整合本地信息商家服务等资源,为本地用户提供多样化的服务,在移动互联网时代,手机已经是人不必不可少的生活工具了,对中小城市及区县地区来说同样是如此.那么搭建同城小程序需要具备哪些 ...

  9. 【MicroPython ESP32】I2C功能使用介绍

    [MicroPython ESP32]I2C功能使用介绍 本示例基于Thonny平台开发. 参考官方文档:http://docs.micropython.org/en/latest/esp32/qui ...

最新文章

  1. Netty傻瓜教程(五):不能不谈Redis
  2. IDEA打包成可执行的JAR包
  3. 对php专业的认识,对PHP要有个全面的认识
  4. 把所有的谎言献给你β
  5. mysql 数据库存储表情
  6. storm安装笔记以及提交拓扑任务
  7. 第一次作业(李奇峰 201731062426)
  8. WebSpher 6.1 安装与应用
  9. Kylin 2.0升级总结
  10. (六)使用ResNet50迁移学习进行COVID-19诊断:从头开始构建深度学习网络
  11. yolov3代码详细解读
  12. JAVAFX版简易计算器
  13. mp4文件如何转换为webm格式 1
  14. openairinterface5g+limesdr搭建4G基站
  15. 云服务器查看物理MAC地址的方法
  16. HCNP——DR和BDR的概念
  17. ARM服务器获取cpu信息,HPUX 查看系统信息(CPU,主机型号,物理内存等)
  18. 各大应用商店APP上架指南
  19. 在maven官网下载maven历史版本
  20. Solace 备份/恢复solace配置

热门文章

  1. c#频繁读取word文件 所请求的剪切板操作失败 解决方法
  2. Table ‘*.hibernate_sequence‘ doesn‘t exist
  3. win10u盘不能读取怎么办?
  4. (医学三维重建)MATLAB体绘制算法:多层面重建(MPR)
  5. 达内java学习day6
  6. 使用CSS替代JS实现几种常见的特效
  7. python educoder 第3关:列表基本操作
  8. iOS上下联动框架(Swift)
  9. Latex入门基础教程(一)安装TeX Live
  10. Polyspace应用:Simulink中的缺陷检查