天线|RF射频
直播中

孙海燕

7年用户 183经验值
私信 关注
[问答]

请问谁做过以太网远程更新的完备方案吗?

如题。
我用过两种以太网远程更新的方案。核心部分都是:芯片flash分成两段:IAP程序段和APP程序段,IAP程序通过网页接收文件,然后写入APP程序段。
第一种方案是:APP程序通过以太网接收特定的更新程序指令然后跳转IAP程序,IAP程序作为服务器,通过一个网页接收文件更新APP程序。
但是第一种方案有一个缺点是:如果在IAP更新APP的过程中发生了掉电,导致APP程序未更新完成,那程序就一去不返了。
第二种方案是:IAP程序上电之后等待30秒,在30秒之内如果有网页连接,就执行远程更新,否则在30秒之后跳转用户程序。
它的缺点就是想更新程序的人必须给芯片复位,然后手忙脚乱的在30秒之内连接到服务器,否则就错过了更新程序的时间。
我想寻求一种稳定可靠的方便的远程更新方案。我自己想了一个方案:
IAP程序把收到更新文件暂存入外部SRAM,等到文件接收完全了并全部存入SRAM后再启动更新,并通过备份寄存器记录程序更新的状态,或者版本号之类的。
请问有人做过类似的操作吗?有什么需要注意的?可以提供一些资料吗?
或者有其他更加成熟的方案吗?

回帖(7)

李桂芝

2019-9-2 06:34:36
更新指令做在APP里面.APP程序收到更新指令.重新启动到IAP程序.IAP更新完成再回到APP执行.解决掉电的问题,可能要有两个程序,一个是备份.
举报

高阳

2019-9-2 06:51:08
两个APP程序?每次更新程序的时候覆盖掉一个,另一个做备份?
请问这个方案用于产品过吗?
那样的话对于用户每次更新的程序中断向量偏移地址都不同,另外程序如果太大也不好吧。
举报

卢兰凤

2019-9-2 07:01:42
看来楼主还是有两下子的.两个APP,你不会玩备份与还原吗?为什么只会玩中断向量呢.
举报

王波

2019-9-2 07:07:42
没玩过,程序的备份与还原应该怎么做呢?
(另外最佳答案不是我设置的,我还有问题没解决,今早上来看到结贴了我一脸黑线)
另一个问题是假如用户刷新的APP 程序是错的,新的APP程序根本无法接收刷新程序指令该怎么办呢?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分