文章以NXP的S32K344芯片为例
一、为什么要做双分区
1、单分区

一般单分区的项目在更新软件版本时的流程大致如下:
UDS擦除旧版本所占flash空间→UDS写入新版本软件
优点:(1)不需要将flash空间划分,可使用空间更多
缺点:(1)不能进行软件版本回滚。
如果在使用UDS刷写新版本的过程中出现突发情况,导致通信中断,或者通信过程中受到信号干扰,导致下载的数据错误等情况,最后结果都是新版本软件没有成功下载,而旧版本软件已经被擦除掉。那么这个设备就不能继续正常工作了。所以就需要软件回滚功能,在新版本没有成功下载的情况下,也能够继续运行旧版本软件继续工作。
2、双分区

将整个flash空间划分为两个部分,在更新软件时,不对当前正在运行的flash区操作,而操作另一个区,不论更新是否成功都不会影响到当前正在运行的软件程序。
流程如下:
UDS擦除非运行区flash空间→UDS写入新版本软件→软件刷写成功→地址重映射→运行新版本程序
优点:可以进行软件版本回滚,以防刷写失败的情况
缺点:(1)flash空间平分为两个部分,因此可用空间减小。(2)需要进行地址重映射

本文详细解释了为何采用双分区技术在NXPS32K344芯片的固件更新中实现版本回滚,包括单分区的局限性、双分区的优势与流程,以及地址重映射的重要性,以确保软件更新的可靠性。
&spm=1001.2101.3001.5002&articleId=136065424&d=1&t=3&u=83a1979e92cb46b0aed7b8fa47ae757e)
2807

被折叠的 条评论
为什么被折叠?



