STM32实用bootloader IAP升级例程(实测可用)

    STM32 IAP实现的流程和原理在这里我就不多说了,懂的小伙伴自然懂,不懂的小伙伴自己百度一下,我就不复制粘贴来充水了,小菜鸟可以先参考一下这篇文章补充一下基础知识:https://blog.csdn.net/elikang/article/details/86082960

    不说废话先上链接:https://pan.baidu.com/s/1tftODblFhlKMvoPwCA2y5w   提取码:poxu

     CSDN下载地址:https://download.csdn.net/download/winux123/12728808

     注意:该例程我是基于STM32F103ZET6芯片,实际使用没有问题,其他芯片设置可能要更改一下。

    为什么要分享这个例程呢?可能本人不才,在网上找的很多例程都是开发者自己编写的,质量有好有坏。有些例程就简单的通过串口一次接收BIN,没有数据完整校验,没有断包、丢包相应处理,写入FLASH没有反馈写入成功结果,有些例程就运行效率低下,每次写入半个字,都要开关FLASH锁,甚至有些加延时。

    这个例程是我在这位朋友的博客(https://www.cnblogs.com/hiker-blogs/archive/2013/03/17/stm32.html)下载的,做了两处小小改动(改动原因下面一一说明)。希望大家有空先去看一下,写的很详细,很有学习价值。

    下面说说这个例程的优点:

    1、该例程是基于STM32官方 YModem IAP例程优化的。

    2、使用YModem协议,数据完整性有保障,传输效率高。

    3、作者对数据接收及写入进行优化,程序运行效率相对高。

    4、代码非常简洁规整,非常容易理解,极容易在此基础上做一些功能升级,例如实现SD卡IAP,蓝牙IAP。

 下面说一下本人改动的地方:

1、把更新程序前对APP区域刷写的程序,修改到在第一次写入APP程序前执行,原作者是在接受到头文件后进行刷写,不知道为何我用SecureCRT测试的时候,发现明明我只发了一个BIN文件,但是在完整接受到BIN后,又接收到一次头文件数据,导致刚接受完的数据被刷掉。所以修改刷写动作在真实写入数据之前,确保不会因为一个空的头文件导致现有数据被错误刷掉。

2、修改了检测升级按钮时间为3秒,方便调试。

 

 

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: STM32F429 IAP例程指的是在STM32F429微控制器上进行固件升级的实例程序。IAP即为In-Application Programming,是一种在应用程序内部执行软件升级的技术。 在STM32F429 IAP例程中,采用了UART串口通信的方式,通过读取固件升级文件的信息,实现对浏览器下载的升级文件进行解析和编程,并在升级结束后重新启动系统。 具体操作步骤如下: 1. 置入Bootloader程序,并配置UART串口通信的波特率、数据位、校验位和停止位等参数。 2. 在应用程序中使用IAP例程函数与Bootloader通信,并进行数据传输。 3. 将下载的固件升级文件通过UART串口传输到程序中,并对升级文件进行解析。 4. 对升级文件进行编程,即将数据加载到对应的Flash存储空间中。 5. 程序编程完成后,重启系统,更新成功。 总之,STM32F429 IAP例程是一种实现固件升级及软件更新的重要方式,能够提高系统的可靠性和稳定性,使得整个系统能够更好的满足用户的需求。 ### 回答2: STM32F429 IAP例程是一种用于STM32F429开发板的应用程序示例。IAP代表可编程应用程序,它允许您在运行时编程控制器的非易失性存储器(FLASH)。 STM32F429是一种高性能微控制器,具有可编程性强,资源丰富,体积小等特点。它可以通过串口或网络,从远端传输数据或更新系统程序,从而实现物联网、远程实时控制等功能。而IAP编程,主要是使用中断控制来更新控制器的FLASH存储器,从而改变控制器内部程序。 在STM32F429 IAP例程中,用户可以将配置文件中的地址和参数设置为特定的值,以执行特定的任务,如擦除FLASH、写入数据等。此外,此例程还提供了许多实用的代码片段和函数,可用于读取和写入FLASH,以及在控制器上执行其他IAP操作。 最终,STM32F429 IAP例程提供了一种有效的方式来更新控制器程序而无需重新烧录整个程序。这使得开发过程更加简化,同时提高了开发的效率和可靠性。 ### 回答3: STM32F429 IAP例程是一种基于固件的编程方法,它可以实现设备自身的升级和更新。IAP代表着“在应用程序中编程”(In-Application Programming) IAP例程的主要作用是在运行期间自行完成程序和数据的更新安装。STM32F429是一款高性能嵌入式微控制器,内置嵌入式闪存、RAM和其他硬件资源,可用于嵌入式系统,对于需要更新和升级固件的嵌入式系统来说,IAP成为非常必要的功能。 STM32F429 IAP的实现可分为两个主要环节,第一个是服务程序(bootloader),主要负责执行IAP程序,检测是否有新的固件需要升级安装,以及处理升级过程中的数据传输等事宜;第二个是应用程序,主要实现设备功能和业务逻辑,与服务程序共同工作来保证设备安全有效运行。 关于STM32F429 IAP例程,其实并没有一个官方的标准化程序,不同的设备和操作系统对于IAP的实现方式和需求也各不相同。因此,对于STM32F429 IAP例程的开发和实现需要由嵌入式开发者利用嵌入式软件工具进行开发,代码实现复杂,需要有一定的开发知识和经验。 总而言之,STM32F429 IAP例程是嵌入式系统中对于固件升级的实现方式之一,能够实现固件升级的安全性和实时性,是嵌入式系统中常用的编程方法之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值