首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

互联网硬件产品远程升级程序时需要注意什么?

对于远程升级程序方案,很多人并不陌生,这一方案被广泛的应用于很多的互联网硬件产品中,既节省了维护成本,又能够快速地解决产品的一些潜在的问题。不同的厂家的升级程序的策略虽然原理上基本相同,但是在细节方面还是有一定的区别。

先来了解一下升级原理,大体的远程升级原理是这样的,先在服务器上放置需要更新的硬件程序固件,然后通过互联网平台与APP通信,将升级命令下发至硬件接口,硬件获取升级命令后,从通信协议中获取升级固件所在的地址和端口,抓取升级包下载到硬件固件存储区进行程序升级。貌似看起来很容易,但是要做到稳定不太容易,有几个关键点需要注意:

一、程序固件在互联网平台的地址及命名规范要明确,比如文件名,版本号,更新日期以及最大容量的要求,要和对应的硬件保持匹配,曾经见到过一个案例,由于后台管理出现漏洞,导致版本号和日期出现了重复,覆盖掉了本来正确的固件,硬件升级后全部停止工作,这个损失是相当惨重的。

二、如果采用双向实时交互方式来升级程序的方案,也就是说将固件打包成若干个子数据包,通过TCP透传的方式,每发一包,硬件端需要向服务器端发送请求,服务器端需要返回对应的数据包,这就需要在每个数据包加校验和序号,以免数据错误导致升级错误造成硬件无法正常运行。

三、如果不需要双向交互,采用硬件端主动获取文件的方式,用get指令抓取服务器升级文件,然后本地存储,跳转升级方式。这种方案目前来说应用比较广泛,减少了交互带来的数据解析和校验,硬件端的灵活性得到了充分的发挥,需要注意的只是硬件端的文件存储和备份,一般会在硬件端建立三个独立的程序存储空间,第一部分是boot区,也就是引导程序区,第二部分是固件缓冲区,用于缓存从服务器抓取的升级固件,第三部分是当前程序区,也就是当前硬件使用的程序区,有的时候还会再分割一个存储区用于存储上一版本的固件,这个根据实际硬件存储容量可以单独设计,硬件上可以用单独的外部存储器存放分区固件。

以上是三种不同的程序远程升级的方式,不过有的时候,固件升级需要获取用户权限,也就是说只有在用户许可的情况下才可以对硬件版本进行升级,拿手机APP来说,很多的APP都有一个界面叫做检查版本更新,用户可以从互联网平台获取最新的固件程序,但是何时下载到对应的硬件平台,需要由用户决定,这个时候,硬件端通常具有蓝牙,zigbee等短距通信能力,直接通过APP进行版本升级,这样更加的人性化。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200426A0592G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券