远程升级带来的原保存参数校验不通过问题
学习硬汉哥实战技能,利用结构体保存设备参数,增加了CRC校验,现在产品远程升级,新增了几个参数,导致原来的参数CRC校验不通过问题,请问大家有没有什么稳定可靠的方法指点?读取原参数,再次增加新参数后再次写入,关键是boot也不知道原参数格式啊本帖最后由 一根油条 于 2024-1-13 10:00 编辑
请问硬汉大哥,H7-TOOL中时如何实现的,这个参数肯定比较多,新增参数也比较常见,请求指点 结构体第1个参数做个版本号,这样方便些。 eric2013 发表于 2024-1-13 10:39
结构体第1个参数做个版本号,这样方便些。
那后续的app也需要保存之前所有版本的参数的格式吗?有些人可能从V0升级到V1,有些人可能直接V0升级到V3 一根油条 发表于 2024-1-13 10:46
那后续的app也需要保存之前所有版本的参数的格式吗?有些人可能从V0升级到V1,有些人可能直接V0升级到V3
这个没关系,就是要比较版本号,版本号一样,不动。不一样,就要整体更新了,重新写写入新的校验值。 我这采用过2种的向前兼容的方式:1.兼容从前一版升级 2.用标准格式导入/导出参数 eric2013 发表于 2024-1-13 11:08
这个没关系,就是要比较版本号,版本号一样,不动。不一样,就要整体更新了,重新写写入新的校验值。
整体更新时还想要保留上一个版本参数数值,这个是不是就有点麻烦了 emwin 发表于 2024-1-13 11:40
我这采用过2种的向前兼容的方式:1.兼容从前一版升级 2.用标准格式导入/导出参数
请问用标准格式是按字节操作导入参数?还是自定义的一个参数对齐协议? 一根油条 发表于 2024-1-13 11:56
整体更新时还想要保留上一个版本参数数值,这个是不是就有点麻烦了
不麻烦,结构体成员往后添加就行了,实际用于非常方便。 eric2013 发表于 2024-1-13 12:35
不麻烦,结构体成员往后添加就行了,实际用于非常方便。
新版本程序往后添加参数确实是可以,但是旧版本程序升级到新版本时,第一次运行发现参数版本不对,那只能全部恢复为默认值,覆盖掉上一版本已经记忆的参数,这个要怎么破?关键的问题是刚更新到新版参数,不知道上一版本的哪些参数是需要覆盖,哪些是不需要覆盖的 一根油条 发表于 2024-1-13 13:39
新版本程序往后添加参数确实是可以,但是旧版本程序升级到新版本时,第一次运行发现参数版本不对,那只能 ...
新增的参数添加到后面,这样方便。
页:
[1]