打印
[STM32]

根据固件版本号更新程序

[复制链接]
1884|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guyan1987|  楼主 | 2015-8-5 20:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现有一项目,需求用U盘(HOST+IAP)升级单片机程序。假如原始产品版本V1,需要替换版本V2(假如V1则不更新,防止未拔U盘重复升级),那么需要升级。个人想法将 V2(或V1)版本的程序,通过HOST+IAP,全部写到单片机FLASH中,然后判断更新标志,是否进行跳转。本质也就是,将第二次文件全部写到FLASH中,再判断标志,是否进行跳转。请问,有过类似经验的大侠,赐教这个版本号标志位,怎么处理更合适。谢谢。

相关帖子

沙发
guyan1987|  楼主 | 2015-8-5 20:47 | 只看该作者
第二次通过host+IAP更新的 程序,flash地址,不与原始版本程序,地址一致。

使用特权

评论回复
板凳
dirtwillfly| | 2015-8-5 21:43 | 只看该作者
个人觉得版本信息觉得放到固定地址或者相对固定的地址比较好

使用特权

评论回复
地板
delin17| | 2015-8-6 16:51 | 只看该作者
版本信息放到固定地址,checksum放到固定地址。
这样会比较好。
我一般是这样做IAP。

使用特权

评论回复
5
guyan1987|  楼主 | 2015-8-7 19:41 | 只看该作者
delin17 发表于 2015-8-6 16:51
版本信息放到固定地址,checksum放到固定地址。
这样会比较好。
我一般是这样做IAP。 ...

我想知道怎么,读取需要升级文件的版本信息。我现在想到的是全部将.BIN文件写到FLASH 再查看版本号,判断是否需要跳转到APP2

使用特权

评论回复
6
guyan1987|  楼主 | 2015-8-7 19:43 | 只看该作者
guyan1987 发表于 2015-8-7 19:41
我想知道怎么,读取需要升级文件的版本信息。我现在想到的是全部将.BIN文件写到FLASH 再查看版本号,判断 ...

我主要做的方法,也就是将.BIN文件,不管需不需要升级,全部写到FLASH中,看版本信息一致,就运行APP1,版本信息不一致,就跳转APP2,

使用特权

评论回复
7
guyan1987|  楼主 | 2015-8-7 20:02 | 只看该作者
delin17 发表于 2015-8-6 16:51
版本信息放到固定地址,checksum放到固定地址。
这样会比较好。
我一般是这样做IAP。 ...

能不能贴段,你查版本信息的代码,谢谢!

使用特权

评论回复
8
guyan1987|  楼主 | 2015-9-22 14:58 | 只看该作者
dirtwillfly 发表于 2015-8-5 21:43
个人觉得版本信息觉得放到固定地址或者相对固定的地址比较好

是的,但是APP2版本信息不知道如何读取,在APP2没被写到flash中的时候。我的想法是:APP1运行,若有U盘插入,进行APP1与APP2的版本号信息判断,若版本号信息不同,则进行固件更新,否则退出更新,运行APP1。

使用特权

评论回复
9
dirtwillfly| | 2015-9-22 15:21 | 只看该作者
guyan1987 发表于 2015-9-22 14:58
是的,但是APP2版本信息不知道如何读取,在APP2没被写到flash中的时候。我的想法是:APP1运行,若有U盘插 ...

也可以单独设置一个txt文件来存放版本号的,插上u盘直接读取这个txt文件

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

132

帖子

2

粉丝