0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

物联网中常用的ota升级方案

嵌入式IoT 来源:嵌入式IoT 作者:嵌入式IoT 2021-03-09 09:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

物联网中常用的ota升级方案

说明

在进行物联网开发的过程中,免不了进行ota升级,那么如何做好ota升级又是非常值得思考的问题。

下面从实际应用案例中,剖析一下ota升级的方案。

方案1

最简单的OTA升级,flash布局如下:

其升级的方案是,每个APP的尾部都会记录如下的相关信息,可以作为跳转的标志。

所以可以这样理解,APP0作为运行分区,APP1作为升级分区,当升级分区的标志置位时,将升级分区的代码放到运行分区中执行。

每次都只会跳转到APP0去执行代码。

优点:

该方案设计比较简单,资源占用小。

缺点:

如果升级的过程中出现错误,而校验又没有检测到,则会导致程序起不来。需要加强校验机制,也需要确保下载代码完全的准确性。

也可能在升级之后,出现联网模块不能使用,导致需要去现场解决,这种问题发生后非常严重。

方案2

方案1会存在可能起不来的风险,这时需要去现场进行程序烧录,成本很大。所以第二种是差分升级。

当APP0运行时,将升级的程序放到APP1中,下次BOOT跳转从APP1地址去运行程序。

当APP1运行时,将升级的程序放到APP0中,下次BOOT跳转从APP0地址去运行程序。

这样可以解决一个问题,当模块升级后连接不了网络的问题。如果连接网络失败,可以将失败的原因放到备份SRAM中,多次连接不上,BOOT检测到这个现象,可以跳转到另外一个可以运行的程序进行降级运行。因为两个可以运行的程序没有被破坏。

但是这个问题解决不了由于程序传输错误导致的程序启动不了的问题。

方案3

我曾经也在实际项目中用到过另外OTA方案,如下设计:

该设计的核心在于BOOT中集成联网模块功能,当BOOT下载时,首先会置位相关的标志位。

其设计上采用BOOT主要用于下载功能,当程序运行APP时,需要升级时,会首先将config的标志位置位,然后跳转到BOOT中进行升级,将代码永远放到APP_BAK中,升级完成后,可以校验通过后,将APP_BAK的代码拷贝到APP中,然后再运行APP区代码。

最后一切功能没问题后,再将config设置成正常状态,否则每次boot启动后都会进行OTA请求。

优点:

程序功能可靠有保障,减少可能起不来的风险

缺点:

由于BOOT中集成了比较多的功能,比较复杂,当替换联网模块时,BOOT和APP的代码需要同步修改。

方案4

rt-thread官网上有一种OTA的方案,具体实现如下:

分区名 起始地址 分区大小 分区位置 介绍
app 自定义 自定义 片内 Flash 存储 app 固件
download 自定义 自定义 片内 Flash 或者片外 SPI Flash 存储待升级固件
factory 自定义 自定义 片内 Flash 或者片外 SPI Flash 存储出厂固件
boot -- -- -- boot固件

流程图如下:

解释一下factory分区的实际应用场景。

由于差分升级或者普通的BOOT升级方案都会存在系统启动不了的可能性,所以增加了一个一定可以启动的固件。具体的使用是需要boot中检测一个硬件IO,当该IO被长时间按下后,会进入出厂程序设置。这样减少了设备出问题后,技术人员需要现场升级的烦恼,即使不懂技术的人也能够按下按键进行复位。

优点:

消除设备启动不了的问题,减少程序下载失败的风险

缺点:

资源消耗太大,三个固件起码需要外挂SPI flash才能设计的比较好,完全利用内部flash,资源有点紧张。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • sram
    +关注

    关注

    6

    文章

    833

    浏览量

    117718
  • 物联网
    +关注

    关注

    2950

    文章

    48121

    浏览量

    418274
  • OTA
    OTA
    +关注

    关注

    7

    文章

    630

    浏览量

    38438

原文标题:物联网中常用的ota升级方案

文章出处:【微信号:Embeded_IoT,微信公众号:嵌入式IoT】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    维护成本直降!RK3576核心板/开发板OTA升级功能详解,触觉智能瑞芯微RK方案

    触觉智能旗下瑞芯微RK3576核心板/开发板产品方案,已新增支持【OTA升级功能】。下文将为大家带来详细的RK3576OTA升级操作指南。
    的头像 发表于 04-21 10:30 136次阅读
    维护成本直降!RK3576核心板/开发板<b class='flag-5'>OTA</b><b class='flag-5'>升级</b>功能详解,触觉智能瑞芯微RK<b class='flag-5'>方案</b>商

    水产养殖智能化升级,从这套联网监控方案开始#农业联网

    联网
    juying
    发布于 :2026年03月26日 16:49:37

    RK平台Android设备OTA升级教程:从原理到U盘实操

    ” 和 “差异包” 两种升级形态,适配不同场景(如全新安装、小版本更新)。本文将从 OTA 升级包的类型与编译入手,拆解 RK 平台 OTA 升级
    的头像 发表于 02-09 16:23 2189次阅读
    RK平台Android设备<b class='flag-5'>OTA</b><b class='flag-5'>升级</b>教程:从原理到U盘实操

    RK3588平台双存储(SPI+PCIE)OTA升级方案教学文档

    在嵌入式设备中,单一存储介质可能存在容量限制或可靠性风险。RK3588 平台的双存储 OTA 升级方案支持SPI(如 SPI NAND/NOR)与 PCIE 存储(如 PCIE SSD) 混合部署
    的头像 发表于 02-01 16:46 1783次阅读
    RK3588平台双存储(SPI+PCIE)<b class='flag-5'>OTA</b><b class='flag-5'>升级</b><b class='flag-5'>方案</b>教学文档

    芯源半导体在联网设备中具体防护方案

    进行升级,避免升级过程中被植入恶意代码。​ (四)物理安全防护方案​ 针对联网设备可能遭受的物理攻击,芯源半导体安全芯片提供了以下物理安全
    发表于 11-18 08:06

    硕博电子OTA远程升级平台#OTA#硕博电子#OTA升级

    OTA
    长沙硕博电子科技股份有限公司
    发布于 :2025年10月29日 11:19:46

    学习联网怎么入门?

    随着联网技术的不断发展,越来越多的人开始关注学习这一领域。但是对于初学者来说,联网似乎是一个庞杂的概念,学习起来很困难。因此,从哪里开始学习
    发表于 10-14 10:34

    使用RTT的维护云进行远程固件升级OTA),怎么没有网络升级的方式?

    使用RTT的维护云进行远程固件升级OTA),怎么没有网络升级的方式的?只有蓝牙,近距离的固件升级。详细如图所示,只有蓝牙,没有连接互联网
    发表于 10-13 06:36

    学习联网可以做什么工作?

    健康、智能制造等领域。以下是一些常见的职业方向: 联网工程师:从事物联网系统的设计、开发、测试、维护和升级等工作,包括传感器、无线通信、云计算、大数据等技术的应用。   嵌入式软件工
    发表于 10-11 16:40

    AS32S601在轨重构(OTA方案的优化与分析

    摘要 在轨重构(OTA)技术因其在航天、工业控制、联网等领域的高可靠性和持续服务需求而备受关注。本文以国科安芯推出的AS32S601芯片为研究对象,深入分析其OTA
    的头像 发表于 09-13 14:52 2688次阅读
    AS32S601在轨重构(<b class='flag-5'>OTA</b>)<b class='flag-5'>方案</b>的优化与分析

    OTA采用ymodem_ota升级app分区出现CRC校验错误是怎么回事?

    芯片:STM32F103VET6 环境:MDK5 使用的相关软件包:ota_downloader; 如上图,使用官方例程,BOOT运行起来之后,发现APP区CRC校验不对,但是会强制升级,并且
    发表于 09-10 06:57

    技术笔记 | Ubuntu 系统 OTA 升级全流程详解

    前言:在嵌入式系统设备管理中,OTA(Over-The-Air)升级是实现设备远程维护、功能迭代的核心能力。本文基于Ubuntu系统环境,详细拆解updateEngine工具的OTA升级
    的头像 发表于 07-31 08:32 1424次阅读
    技术笔记 | Ubuntu 系统 <b class='flag-5'>OTA</b> <b class='flag-5'>升级</b>全流程详解

    蓝牙空中升级(OTA)原理

    1. 概述 所谓DFU(Device Firmware Update),就是设备固件升级的意思,而OTA(Over The Air)是实现DFU的一种方式而已,准确说,OTA的全称应该是OTA
    发表于 07-21 14:50

    东风日产N7开启首次OTA升级

    近日,东风日产举办“NI好 N7首次OTA升级发布会”,并宣布OTA升级即日开启推送。
    的头像 发表于 07-05 13:57 1325次阅读

    瑞萨电子MCU无感OTA升级功能介绍

    在工业控制、电机驱动乃至联网边缘节点中,固件在线升级OTA)已成为产品生命周期管理的标配。然而传统OTA往往伴随停机、风险与低效。瑞萨电
    的头像 发表于 05-15 14:36 1928次阅读
    瑞萨电子MCU无感<b class='flag-5'>OTA</b><b class='flag-5'>升级</b>功能介绍