一根油条 发表于 2024-1-13 09:44:10

远程升级带来的原保存参数校验不通过问题

学习硬汉哥实战技能,利用结构体保存设备参数,增加了CRC校验,现在产品远程升级,新增了几个参数,导致原来的参数CRC校验不通过问题,请问大家有没有什么稳定可靠的方法指点?读取原参数,再次增加新参数后再次写入,关键是boot也不知道原参数格式啊


一根油条 发表于 2024-1-13 09:48:18

本帖最后由 一根油条 于 2024-1-13 10:00 编辑

请问硬汉大哥,H7-TOOL中时如何实现的,这个参数肯定比较多,新增参数也比较常见,请求指点

eric2013 发表于 2024-1-13 10:39:51

结构体第1个参数做个版本号,这样方便些。

一根油条 发表于 2024-1-13 10:46:19

eric2013 发表于 2024-1-13 10:39
结构体第1个参数做个版本号,这样方便些。

那后续的app也需要保存之前所有版本的参数的格式吗?有些人可能从V0升级到V1,有些人可能直接V0升级到V3

eric2013 发表于 2024-1-13 11:08:56

一根油条 发表于 2024-1-13 10:46
那后续的app也需要保存之前所有版本的参数的格式吗?有些人可能从V0升级到V1,有些人可能直接V0升级到V3

这个没关系,就是要比较版本号,版本号一样,不动。不一样,就要整体更新了,重新写写入新的校验值。

emwin 发表于 2024-1-13 11:40:44

我这采用过2种的向前兼容的方式:1.兼容从前一版升级 2.用标准格式导入/导出参数

一根油条 发表于 2024-1-13 11:56:49

eric2013 发表于 2024-1-13 11:08
这个没关系,就是要比较版本号,版本号一样,不动。不一样,就要整体更新了,重新写写入新的校验值。

整体更新时还想要保留上一个版本参数数值,这个是不是就有点麻烦了

一根油条 发表于 2024-1-13 11:57:39

emwin 发表于 2024-1-13 11:40
我这采用过2种的向前兼容的方式:1.兼容从前一版升级 2.用标准格式导入/导出参数

请问用标准格式是按字节操作导入参数?还是自定义的一个参数对齐协议?

eric2013 发表于 2024-1-13 12:35:15

一根油条 发表于 2024-1-13 11:56
整体更新时还想要保留上一个版本参数数值,这个是不是就有点麻烦了

不麻烦,结构体成员往后添加就行了,实际用于非常方便。

一根油条 发表于 2024-1-13 13:39:46

eric2013 发表于 2024-1-13 12:35
不麻烦,结构体成员往后添加就行了,实际用于非常方便。

新版本程序往后添加参数确实是可以,但是旧版本程序升级到新版本时,第一次运行发现参数版本不对,那只能全部恢复为默认值,覆盖掉上一版本已经记忆的参数,这个要怎么破?关键的问题是刚更新到新版参数,不知道上一版本的哪些参数是需要覆盖,哪些是不需要覆盖的

eric2013 发表于 2024-1-14 10:02:51

一根油条 发表于 2024-1-13 13:39
新版本程序往后添加参数确实是可以,但是旧版本程序升级到新版本时,第一次运行发现参数版本不对,那只能 ...

新增的参数添加到后面,这样方便。

页: [1]
查看完整版本: 远程升级带来的原保存参数校验不通过问题