| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- 记住下面文档格式以及内容:
- 六、合宙自有服务器 FOTA 简介
- FOTA 有多种方式,可以使用合宙的 iot 平台进行升级,也可以使用用户自建平台升级,可以只升级 core,可以只升级用户脚本,也可以 core+ 脚本一起升级,接下来先介绍合宙自有服务器升级,第三方升级在下一篇文章中介绍
- 6.1 云平台配置
- 使用合宙自建服务器的话,需要先登录合宙 IOT 平台,如下图所示,没有账号的,可以先注册一个 客户向合宙采购4G模块时,如果采购人员没有告知合宙这批模块放在iot.openluat.com上的哪个产品下,则合宙会以采购人的手机号为账号,默认密码888888,创建一个“合宙标准模块”的项目,此次采购的所有模块都会放在这个项目下,如果你的账号下没有对应imei,可以联系合宙销售帮忙添加模块进对应项目下(最好还是从哪里买的模块,就让他给你转移到你自己名下)
- 如果不在自己账号下,也可以通过烧录专属固件的方法,把模块归属到您指定的项目下,可以通过点击帮助中心,查看详细说明。
- 登录以后点击红框所示位置
- 然后依次点击如下图所示红框所示的地方,创建一个新项目
- 在所有项目的最后,找到自己刚刚新建的项目,并且点击红框内的"查看/点击复制"复制后面升级所需要的校验码,复制到自己剪切板中
- 至此,合宙云平台上的预备动作就做完了
- 6.2 仅脚本升级简介
- 如果用户只是新增一些自己的脚本逻辑,没有更新底层,可以选择仅脚本升级
- 6.2.1 仅脚本升级示例
- 仅脚本升级 demo 链接
- 打开 luatools 的项目管理界面,点击生成量产文件,Air8000的纯脚本升级文件放在 luatools 根目录下的"SOC 量产及远程升级文件\Air8000"目录下
- 因为模块烧录的是 001.000.000 版本,所以我们需要给脚本里的版本号改一下,改为 001.000.001 版本
- 再将脚本中增加几行打印(为了模拟用户修改脚本的动作)
- 然后重新生成一次量产固件
- 打开刚刚的合宙 iot 平台点击我的项目--固件列表--创建固件
- 点击选择文件,把刚刚的 bin 后缀文件上传到 iot 平台
- 文件名、固件名、版本号都是自动识别的,用户无需修改
- 点击确定,等待上传成功的动画提示
- 模块刚开机,luatools 会打印模块的 imei 号,如下图所示,当然也可以使用手机扫描模块上的二维码获得模块 imei 号,或者将模块屏蔽盖上二维码的下方第一排模块的 imei 号,记录下来
- 在刚刚创建固件的地方,下拉,找到刚刚创建的升级任务,然后按下图所示,添加模块的 imei
- 将升级文件上传和添加 imei 工作完成以后,点击 luatools 上的重启模块或者按照代码里的等待 4 小时,触发远程升级逻辑
- 6.2.2 示例效果展示
- 升级前:因为没有升级固件,所以请求升级的结果为"已是最新版本",每隔 5S 会打印一句"降功耗找合宙"和当前版本号
- 升级中:模块请求升级,下载完升级包以后会进行 MD5 验证升级包有无问题,如果没问题,就会启动重启程序,然后进行升级工作
- 升级后:升级成功后按我们之前的脚本,每隔 1S,打印五次"降功耗,找合宙"以及当前脚本版本号,可以看出,当前版本号已经由原来的 001.000.000 变为了 001.000.001
- 当然:升级完成以后,因为脚本中有联网就去请求一次升级的代码,所以,会再去请求一次升级,因为没有更高的版本了,所以会上报"已是最新版本"
- 6.3 含 core 升级简介
- 每一次 core 的升级都会带来一些网络上的优化(例如信号差时的网络稳定性)以及一些 bug 修复,所以在发布新版本以后,用户可以先测试下 core 对自己脚本有无明显影响或性能提升,然后进行远程 FOTA
- 6.3.1 含 core 升级测试 demo
- demo 示例
- 这里选择升级到 2008 的core 版本进行演示,001.000.001 脚本选择搭配的 core 为 V2007 版本,再次点击"生成量产文件",稍等即可在 luatools 根目录下的"SOC 量产及远程升级文件\Air8000"目录下,找到 core 版本号为 V2007 且脚本版本号为 001.000.001 的 soc 后缀文件
- 生成了这个版本以后,再去脚本中改动脚本版本号为 001.000.002(只要前后两位有一位大于 1 即可(当然第一位大于 1 的时候,整个版本号自然大于 001.000.001),如 002.000.200,001.000.002,030.000.311 等)
- 脚本版本号分为 A.B.C 三段;
- 因为历史原因,中间这一段 B 没有任何意义,但是必须存在;
- 假设旧的脚本版本号为 A1.B1.C1,新的脚本版本号为 A2.B2.C2;
- 当新旧脚本版本号满足以下任何一种条件时,版本号允许升级:
- 1、A2 等于 A1,同时 C2 大于 C1;
- 2、A2 大于 A1,同时 C2 大于或者等于 C1;
- 3、B1 B2 无意义
- 然后在 luatools 里重新选择 core 为 V2008 版本,同样点击生成固件,稍等即可在在 luatools 根目录下的"SOC 量产及远程升级文件\Air8000"目录下,找到 core 版本号为 V2008 且脚本版本号为 001.000.002 的 soc 后缀文件
- 接下来就是针对这两个量产文件,制作一个差分文件,用来远程升级(注:远程升级中 core 为差分,脚本为全量升级)
- 点击到 luatools 的主界面,依次点击图中蓝框所示意的地方(注:必须使用 luatools_3.0.9 及其以上版本,要不差分包升级的时候可能会出问题)
- 按下图所示选择低版本以及高版本的固件,然后点击开始执行即可,如果不想输出的差分包在 luatools 根目录下,可以自行选择一个输出路径
- 因为包含了 core 中的改动,所以时间会稍长一些,luatools 可能会出现"假死"情况,不要关闭它,稍等一会即可看到
- 同样,在你选择的目录下(没选择的在 luatools 根目录下)看到如下所示,带着脚本的 PROJECT core 版本号 脚本版本号的 bin 后缀的差分文件。
- 至于 iot 平台的配置还是和上文一样的步骤
- 登录 iot 平台
- 打开刚刚的合宙 iot 平台点击我的项目--固件列表--创建固件
- 点击选择文件,把刚刚的 bin 后缀文件上传到 iot 平台
- 文件名、固件名、版本号都是自动识别的,用户无需修改
- 点击确定,等待上传成功的动画提示
- 如果上传了其他文件,会提示"升级文件有误"
- 模块刚开机,luatools 会打印模块的 imei 号,如下图所示,当然也可以使用手机扫描模块上的二维码获得模块 imei 号,或者在模块屏蔽盖 二维码的下方第一排就是模块的 imei 号,记录下来
- 在刚刚创建固件的地方,下拉,找到刚刚创建的升级任务,然后按下图所示,添加模块的 imei
- 将升级文件上传和添加 imei 工作完成以后,为了防止模块当前固件不是fotademo_2007.001.001_LuatOS-SoC_Air8000 版本,可以点击 luatools 主界面右边的"下载固件"选择最早的 001.000.001 版本,按住 BOOT 重启模块,然后点击下载,将最早的固件下载进模块里
- 6.3.2 示例效果展示
- 升级前:模块打印当前脚本版本号和 core 版本号
- 升级中下载差分包,校验差分包完成后就会重启模块进入真正的升级逻辑
- 因为升级包带 core,所以从重启命令执行下去,到最终升级完成,模块重新开机打印了第一条开机日志,中间隔了不到一分钟,如果 core 中代码改动较多,两分钟三分钟都是正常的。
|