System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 程序的更新方法、装置、存储介质及电子装置制造方法及图纸_技高网

程序的更新方法、装置、存储介质及电子装置制造方法及图纸

技术编号:40777693 阅读:3 留言:0更新日期:2024-03-25 20:23
本申请公开了一种程序的更新方法、装置、存储介质及电子装置,涉及嵌入式软件领域,该程序的更新方法包括:确定微控制器的第一程序和第二程序,其中,第一程序用于指示微控制器中处于应用状态的程序,第二程序用于指示待更新到微控制器中的新程序,第二程序为第一程序的升级版本;确定第一程序与第二程序的数据差异,并获取数据差异对应的逻辑区块信息;根据逻辑区块信息和数据差异生成逻辑序列包;在微控制器与上位机已建立通信连接的情况下,将逻辑序列包通过通信连接发送到微控制器,指示微控制器通过逻辑序列包进行程序更新。解决了相关技术中,存在软件开发阶段微控制器中程序更新效率低下的技术问题。

【技术实现步骤摘要】

本申请涉及嵌入式软件领域,具体而言,涉及一种程序的更新方法、装置、存储介质及电子装置


技术介绍

1、相关技术中,对于大部分mcu(microcontroller unit,微控制单元,又称为微控制器,简称mcu)中其闪存flash资源受限,无法在上面部署文件系统,需要直接下载程序执行。但是随着业务需求的增加,mcu的代码越来越大,导致将程序下载到mcu耗时越来越长。对于汽车行业,一般的闪存flash大小在128k-10m,一般情况下,通过500kbps的can总线(controller area network,控制器局域网总线,简称can总线)和fbl(flash bootloader,闪存引导加载程序简称fbl)下载程序到闪存flash,最快的速度平均约10kb/s,下载上述程序耗时13s~17min,甚至可能更慢。

2、此外,在对mcu执行软件升级的软件开发阶段,需要频繁向mcu中下载程序进行测试,但常常在下载阶段消耗大量的时间,降低了软件开发工作效率,且增加了对mcu执行软件升级的资源成本。

3、因此,相关技术中,存在软件开发阶段微控制器中程序更新效率低下的技术问题。

4、针对相关技术中,如何解决在软件开发阶段微控制器中程序更新效率低下的技术问题,尚未提出有效的解决方案。


技术实现思路

1、本申请实施例提供了一种程序的更新方法、装置、存储介质及电子装置,以至少解决了相关技术中,存在软件开发阶段微控制器中程序更新效率低下的技术问题。>

2、根据本申请实施例的一个实施例,提供了一种程序的更新方法,包括:确定微控制器的第一程序和第二程序,其中,所述第一程序用于指示所述微控制器中处于应用状态的程序,所述第二程序用于指示待更新到所述微控制器中的新程序,所述第二程序为所述第一程序的升级版本;确定所述第一程序与所述第二程序的数据差异,并获取所述数据差异对应的逻辑区块信息;根据所述逻辑区块信息和所述数据差异生成逻辑序列包;在微控制器与上位机已建立通信连接的情况下,将所述逻辑序列包通过所述通信连接发送到所述微控制器,指示所述微控制器通过所述逻辑序列包进行程序更新。

3、在一个示例性实施例中,确定所述第一程序与所述第二程序的数据差异之前,上述方法还包括:从所述第一程序获取第一程序头信息和从所述第二程序获取第二程序头信息,其中,所述第一程序头信息用于指示所述第一程序运行在所述微控制器中时,所述微控制器中多个逻辑区块对应的第一缓存区块大小,所述第二程序头信息用于指示所述第二程序运行在所述微控制器中时,需要所述微控制器提供的多个逻辑区块对应的第二缓存区块大小;在所述第一缓存区块大小和所述第二缓存区块大小相同的情况下,根据所述第一缓存区块大小将所述第一程序分解为n个第一逻辑包,及根据所述第一缓存区块大小将所述第二程序分解为m个第二逻辑包,其中,所述m、n为正整数,所述第一逻辑包和所述第二逻辑包均至少包括:每个逻辑包待写入的逻辑区块的起始地址,所述逻辑包在程序中对应的详细数据,所述第一逻辑包和所述第二逻辑包对应的逻辑包大小与其逻辑区块对应的区块大小相同。

4、在一个示例性实施例中,确定所述第一程序与所述第二程序的数据差异,包括:对所述第一程序与所述第二程序中所有逻辑包的起始地址执行比较操作;在识别到所述n个第一逻辑包和所述m个第二逻辑包之间所有起始地址的情况下,确定起始地址相同的第一逻辑包与第二逻辑包之间的逻辑包差异数据,识别所述m个第二逻辑包中与所述n个第一逻辑包存在所述逻辑包差异数据的l个目标第二逻辑包,并根据所述l个目标第二逻辑包得到所述n个第一逻辑包与m个第二逻辑包之间的第一子差异,其中,所述l为大于或等于0的整数;在确定所述第一程序与所述第二程序之间存在起始地址不相同的逻辑包的情况下,识别所述m个第二逻辑包中存在与所述n个第一逻辑包起始地址不同的p个目标第二逻辑包,并根据所述p个目标第二逻辑包得到所述n个第一逻辑包与m个第二逻辑包之间的第二子差异,其中,所述p小于或等于m,p为不小于0的整数;根据所述第一子差异和所述第二子差异确定所述第一程序与所述第二程序之间的数据差异。

5、在一个示例性实施例中,确定起始地址相同的第一逻辑包与第二逻辑包之间的逻辑包差异数据,包括:在确定起始地址相同的第一逻辑包对应的第一数据内容与第二逻辑包对应的第二数据内容存在不同的情况下,确定所述第一逻辑包和所述第二逻辑包存在逻辑包内容差异;在确定起始地址相同的第一逻辑包对应的第一数据长度与第二逻辑包对应的第二数据长度存在不同的情况下,确定所述第一逻辑包和所述第二逻辑包存在逻辑包长度差异;基于所述逻辑包内容差异和所述逻辑包长度差异确定起始地址相同的第一逻辑包与第二逻辑包之间的所述逻辑包差异数据。

6、在一个示例性实施例中,获取所述数据差异对应的逻辑区块信息,根据所述逻辑区块信息和所述数据差异生成逻辑序列包,包括:识别所述l个目标第二逻辑包和p个目标第二逻辑包中每一个目标第二逻辑包在所述微控制器中对应的逻辑区块信息,其中,所述逻辑区块信息指示目标第二逻辑包的逻辑区块在所述微控制器对应的区块位置;基于所述逻辑区块信息对所述l个目标第二逻辑包和p个目标第二逻辑包进行排序组合,生成所述逻辑序列包。

7、在一个示例性实施例中,将所述逻辑序列包通过所述通信连接发送到所述微控制器,包括:识别所述逻辑序列包中的每一个逻辑包对应的起始地址;根据所述起始地址向所述微控制器中与所述起始地址对应的缓存区块发送擦除指令;在确定所述缓存区块中的数据完成擦除的情况下,将所述逻辑序列包中的每一个逻辑包对应的详细数据写入所述缓存区块。

8、在一个示例性实施例中,指示所述微控制器通过所述逻辑序列包对所述第一程序进行更新之后,上述方法还包括:计算所述第二程序对应的目标校验码;将所述目标校验码、所述第二程序对应的首地址、所述第二程序对应的数据长度发送至所述微控制器,并指示所述微控制器采用目标计算方式对所述微控制器中通过所述逻辑序列包进行程序更新后获得的目标程序对应的首地址、所述目标程序对应的数据长度进行计算,得到校验结果,其中,所述目标计算方式用于指示与计算所述目标校验码相同的计算方式;在校验结果对应的计算校验码与所述目标校验码相同的情况下,确定成功将所述第一程序更新为所述第二程序。

9、根据本申请实施例的另一个实施例,还提供了一种程序的更新装置,包括:获取模块,用于确定微控制器的第一程序和第二程序,其中,所述第一程序用于指示所述微控制器中处于应用状态的程序,所述第二程序用于指示待更新到所述微控制器中的新程序,所述第二程序为所述第一程序的升级版本;确定模块,用于确定所述第一程序与所述第二程序的数据差异,并获取所述数据差异对应的逻辑区块信息;生成模块,用于根据所述逻辑区块信息和所述数据差异生成逻辑序列包;更新模块,用于在微控制器与上位机已建立通信连接的情况下,将所述逻辑序列包通过所述通信连接发送到所述微控制器,指示所述微控制器通过所述逻辑序列包进行程序更新。...

【技术保护点】

1.一种程序的更新方法,其特征在于,包括:

2.根据权利要求1所述的程序的更新方法,其特征在于,确定所述第一程序与所述第二程序的数据差异之前,所述方法还包括:

3.根据权利要求2所述的程序的更新方法,其特征在于,确定所述第一程序与所述第二程序的数据差异,包括:

4.根据权利要求3所述的程序的更新方法,其特征在于,确定起始地址相同的第一逻辑包与第二逻辑包之间的逻辑包差异数据,包括:

5.根据权利要求3所述的程序的更新方法,其特征在于,获取所述数据差异对应的逻辑区块信息,根据所述逻辑区块信息和所述数据差异生成逻辑序列包,包括:

6.根据权利要求1所述的程序的更新方法,其特征在于,将所述逻辑序列包通过所述通信连接发送到所述微控制器,包括:

7.根据权利要求1所述的程序的更新方法,其特征在于,指示所述微控制器通过所述逻辑序列包进行程序更新之后,所述方法还包括:

8.一种程序的更新装置,其特征在于,包括:

9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。

10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。

...

【技术特征摘要】

1.一种程序的更新方法,其特征在于,包括:

2.根据权利要求1所述的程序的更新方法,其特征在于,确定所述第一程序与所述第二程序的数据差异之前,所述方法还包括:

3.根据权利要求2所述的程序的更新方法,其特征在于,确定所述第一程序与所述第二程序的数据差异,包括:

4.根据权利要求3所述的程序的更新方法,其特征在于,确定起始地址相同的第一逻辑包与第二逻辑包之间的逻辑包差异数据,包括:

5.根据权利要求3所述的程序的更新方法,其特征在于,获取所述数据差异对应的逻辑区块信息,根据所述逻辑区块信息和所述数据差异生成逻辑序列包,包括:

6.根据权利要求1所述...

【专利技术属性】
技术研发人员:沈向东沈成宇侯敏曹辉
申请(专利权)人:瑞浦兰钧能源股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1