远程升级套件

简介

远程升级(Firmware Over The Air)可通过无线网络实现固件升级。OneOS的OTA为差分升级,采用此方式可极大降低升级包的大小。OneOS OTA组件分两部分:BootLoader和App,BootLoader实现固件还原功能、升级功能,App部分完成更新检测、固件下载、版本校验。

BootLoader下载地址为:https://gitee.com/cmcc-oneos/bootloader,目前开放出来的BootLoader只支持LUSUN算法,所以在配置的时候请选用LUSUN,关于分区配置请参照对应板子下的README.txt。

下载协议所有板子目前都可支持,列举部分板子差分算法的支持情况(RAM > 200k,可以考虑使用Wosun;RAM > 512k,可以考虑使用Wosun high):

注1:如果使用串口通信,buffer推荐设置成512或更大,以免下载升级包出错

STM32F091:支持LUSUN。

STM32F103:支持LUSUN。

STM32F407:支持LUSUN。

STM32F429:支持LUSUN。

STM32F469:支持LUSUN。

STM32F769:支持LUSUN。

STM32L452:支持LUSUN。

STM32L475:支持LUSUN。

STM32L496:支持LUSUN。

配置指南

menuconfig配置:

1.由于要使用BootLoader,需要将BootLoader的开关打开。如下:

(Top) → Boot Config

OneOS Configuration

[*] Enable OneOS bootloader

2.选择合适的联网方式

注2:使用串口收发数据时,buffer推荐设置为512或更大;如果接收数据丢失,查看RX是否配置为DMA接收模式

3.OTA相关信息配置

按需要更更改的地址为:1、下载的方式,2、差分的算法,3、平台相关的值。

下载的方式目前支持HTTP和COAP,差分的算法目前支持LUSUN、WOSUN LOW、WOSUN HIGH,BootLoader和App需要保持算法一致。App对应这两个的配置选项如下。

(Top) → Components→ OTA→ Fota by CMIOT

OneOS Configuration

[*] Enable fota by cmiot

The supported network protocol (Http) --->

The supported algorithm (Lusun) --->

如果使用Wosun 差分算法,还需要配置如下两项:

(0x8020000) App part addr from fal's OS_APP_PART_ADDR

(0x20000) Download part size from fal's OS_DL_PART_SIZE

分别把OS_APP_PART_ADDR和OS_DL_PART_SIZE算出来的值填入即可,这是制作差分包时,平台需要的信息。

与平台相关配置:

(cmiot_cd) Oem

(F103RE) Model

(1593394730) Product id

(e7f48e3ea6c3417d82edfe66b1305ac8) Product secret

(box) Device type

(STM32F1) Platform

(5.0) Firmware version

注3:须保持与OTA平台侧项目信息一致。

注4: Firmware version 是制作出软件包的版本,改变此值后在KEIL里编译会生成相应版本的软件包,之后即可在OTA平台上传制作差分包

工程构建:

1、APP烧录的位置和大小,跟APP分区一致,不能随意更改,不然会跳转失败,可以参照下面注7。

注5:不同的联网方式会改变app大小,需要根据使用场景调整app及bootloader分区大小

2、打包命令可以加到Keil软件里,也可以自己手动在scons或cmd命令行打包。命令为:

压缩软件支持:WinRAR.exe、7z.exe

只生成axf文件的打包命令:..\..\components\ota\cmiot\cmiot_axf.bat fromelf程序路径 压缩软件路径 oneos_config.h axf文件路径

已生成bin文件的打包命令:..\..\components\ota\cmiot\cmiot_bin.bat 压缩软件路径 oneos_config.h bin文件路径

例如:

只生成axf文件:..\..\components\ota\cmiot\cmiot_axf.bat "D:\Keil_v5\ARM\ARMCC\bin\fromelf.exe" "C:\Program Files\WinRAR\WinRAR.exe" oneos_config.h build\keil\Obj\oneos.axf

已生成bin文件:..\..\components\ota\cmiot\cmiot_bin.bat "C:\Program Files\WinRAR\WinRAR.exe" oneos_config.h ..\..\out\stm32l475-atk-pandora\oneos.bin

注6:WinRAR.exe和fromelf.exe是绝对路径,需要根据个人电脑相应路径进行修改

注7:App的烧录地址要跟分区表匹配,才能跳转成功,以ARMCC的链接文件link.sct为例,GCC的链接文件为link.lds,IAR的链接文件为link.icf。

注8:F0系列产品需要注意KEIL配置RAM根据以下代码修改

OTA云平台制作差分包

1.平台建项目的时候注意选精简版,我们的板子只支持这个。OTA类型选择精简版。

2.差分对比块大小和驱动一样,配置为块大小。

3.如果使用WOSUN,在OTA平台制作差分包时需要设置设备内存,设置为(RAM总大小 - 10)

示例

1、包含头文件

#include

2、添加上报升级结果和升级更新的代码

API使用说明手册

注意事项

详细见各个分项下的注意事项。

fota 差分包_chaoFOTA相关推荐

  1. fota 差分包_艾拉比FOTA差分升级助力电力厂商加速软件迭代

    电力载波作为电力系统特有的通信方式,广泛应用在远程抄表领域.但是由于电力载波拥有可靠性差,通讯不稳定的缺点,使得设备的升级成功率比较低.本期的小课堂,艾拉比将系统介绍下我们提供的FOTA差分升级是如何 ...

  2. fota 差分包_FOTA

    NB模组实现FOTA升级操作流程(M5310-A为例) 1.准备工作 (1)升级方式: 差分包升级. (2)模组侧准备工作 NB 模组型号: M5310-A(仅以此模组举例, 其他具有 FOTA 功 ...

  3. fota 差分包_FOTA相关知识总结

    Android OTA升级,顾名思义是指over-the-air升级方式.通过在线下载安装包的形式,对整个系统进行升级. 在说FOTA之前,先看看Android的系统分区.具体参考官方网页 Andro ...

  4. Android Fota(差分包)制作

    Android Fota包制作 Fota包生成步骤 问题 Fota包生成步骤 在Android系统编译(make)完成后,执行 make otapackage即可生成制作差分包所需的target pa ...

  5. fota 差分包_FOTA升级

    分以下三个模块分析FOTA升级介绍 1.在一个高通安卓项目中部署FOTA升级 2.Android ota升级的基本过程 3.Android ota升级异常分析 升级: 从方法上分为整个文件替换,以打p ...

  6. fota 差分包_移动物联网模块之FOTA更新攻击

    嵌入式GPRS/EDGE.3G.4G和5G模块通常用于很多用途,包括连接设备,如对讲机.警报器.汽车ECU.车载信息娱乐系统(IVI).租赁汽车的开锁箱(Getaround连接解锁系统使用蓝牙,但也有 ...

  7. Fota 升级-差分包制作

    Fota 升级差分包制作 1. 升级包打包 make otapackage 编译界面输入 make otapackage,主要生成 target_files 和 ota 文件 \out\target\ ...

  8. Air780E|FOTA|IOT|FotaToolkit|空中下载软件升级|云平台|CSDK|差分包升级|编译|官方demo|学习(1):example_fota_iot差分包升级示例

    目录 基础资料 探讨重点 硬件准备 ​内容参考 2.1 编译底包 2.2 编译升级包 2.3 Fota CSDK样例使用说明 2.4 差分包生成 三.差分包升级测试流程 基础资料 基于Air780E开 ...

  9. linux差分包升级流程,OTA 差分升级包的制作

    OTA 升级是 Android 系统提供的标准软件升级方式. 它功能强大,提供了完全升级.增量升级模式,可以通过 SD卡升级,也可以通过网络升级. 那如何生成差分升级包呢? Android源码的根目录 ...

最新文章

  1. MinkowskiPooling池化(上)
  2. 浅谈Python和VC中的编码问题(转)
  3. 在SAP HANA Express Edition里进行文本分析
  4. 短信通信的几种情况和CMS错误
  5. AI应用开发实战系列之一: 从零开始配置环境
  6. 爬虫 页面元素变化_爬虫 基本知识 萌新
  7. 官宣!“一流大学”,异地落户!
  8. 制作网页版电子时钟特效
  9. oracle 触发器写法|oracle trigger 语法
  10. ThreadLocal,静态变量,实例变量,局部变量的线程安全
  11. ie11兼容性问题,jsp在IE11显示不全问题,ie11覆盖内容问题解决方法
  12. 【MySQL】简单易学的MySQL安装教程
  13. 八核版9500odin3线刷通刷以及root教程
  14. 【Research】Accounting-会计
  15. 3389、135、137、138、139、445等端口解释和关闭方法
  16. Java 求解买卖股票的xx时机含手续费
  17. 如何提高页面性能并充分利用主机
  18. iOS UIWebView的基本用法
  19. 打开PowerPoint提示:PowerPoint上次起送时失败。以安全模式启动PowperPoint将帮助您纠正或发现启动中的问题
  20. leetcode奇技淫巧-递归中途强制跳出

热门文章

  1. java的mysql语句规范_常用的标准SQL 语句
  2. c 四舍五入_王子异成苏宁易购新宠?网友:我心里的C位还是贾乃亮!
  3. Python工程师必看的面试问题与解答(中)
  4. 网页中显示xml,直接显示xml格式的文件
  5. Mysql取分组中前N条记录
  6. 简直要逆天!超炫的 HTML5 粒子效果进度条
  7. 请教 这段代码有问题吗
  8. 云空间-全面进入免费云时代-国内首家免费T级云空间!
  9. QTP工作原理的学习心得
  10. LR运行9415商品拒绝问题