手把手教你实现一个IAP程序

从裸机到嵌入式Linux——手把手教你实现一个IAP程序

什么是IAP

简单讲IAP就是一个用于应用更新的程序,常见于物联网领域应用程序的远程更新。本文以STM32+4G为例,STM32通过串口与4G模块相连,4G模块接收服务器的bin文件完成应用更新。

IAP实现过程分析

背书: 对于STM32而言,只要是经过keil编译链接生成的bin文件都可以被执行。这里我们重点说明STM32端的处理过程。

内存分布及划分

总体而言,一个完整的IAP项目包含两个工程,用于引导升级的工程和用户Application工程(也就是我们正常实现功能逻辑的工程)。以最常见的从内部Flash启动方式为例,两个工程在内存中的划分是这样的。
在这里插入图片描述

IAP更新过程分析

在这里插入图片描述

使用方法

这里我给大家准备了两个空白的DEMO,基于STM32F103VET6的,可以通过4G(串口3透传)和串口1进行远程和本地升级,需要的朋友直接私信我或者去下载种心找资源进行下载就好了,如果有不清楚的内容,我会在B站同步更新我的代码走读过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
串口Ymodem是一种用于通过串口进行程序升级的通信协议。它可以使设备与计算机之间通过串口传输二进制文件,实现设备固件的升级。 具体的实现步骤如下: 1. 首先,在设备固件中实现串口的初始化和配置。设置串口的波特率、数据位、校验位等参数。 2. 在设备端,创建一个接收缓冲区来存储将通过Ymodem协议传输的数据。 3. 在计算机端,使用串口通信工具,打开与设备连接的串口,并发送Ymodem传输指令。Ymodem传输指令的格式包括起始命令、文件名、文件大小等信息。 4. 设备接收到Ymodem传输指令后,从串口接收数据,并将数据存储到接收缓冲区中。同时,设备端还需进行数据完整性校验和校验值的计算。 5. 当一条数据块传输完毕后,设备端将校验结果发送给计算机端进行确认。确认信息由计算机端发送下一条数据块的指令。 6. 计算机端接收到确认信息后,将下一条数据块发送给设备端,直到所有数据块都传输完毕。 7. 设备端在接收完所有数据块后,还需进行总体数据校验和升级完成的确认。 这样,通过串口Ymodem协议,就可以实现设备固件的升级。其中,计算机端需要的是串口通信工具以及能够构建和发送Ymodem传输指令的软件;设备端需要实现串口的初始化和配置,以及接收、校验和存储通过Ymodem协议传输的数据。通过这种方式,可以方便、快速地进行设备固件的升级。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雷达爆破手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值