一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

程序升级方法、装置和电子设备与流程

2023-09-08 00:03:18 来源:中国专利 TAG:


1.本技术涉及程序刷写技术领域,具体而言,涉及一种程序升级方法、装置和电子设备。


背景技术:

2.如果因应用程序升级,会同时在flash中执行应用程序和升级程序(其中,升级程序用于升级待应用程序),从而同时执行应用程序和升级程序中的全部代码,进而导致出现flash资源紧张的情况,对此现有方案会采用以下三种方案来应对,具体如下:
3.1)删减控制器功能,缺点为导致控制器的功能数量降低,进而导致该控制器与其它控制器的竞争力下降;
4.2)释放flash资源中已占用的空间,缺点与第一种方案相同,会使得控制器中正在运行的功能停止,从而导致控制器与其它控制器的竞争力下降;
5.3)切换flash资源更充足的mcu芯片作为新的控制器,缺点为flash资源更充足相比正在应用的控制器的成本较高,会导致控制器成本增加;
6.为了不降低控制器的竞争力,通常会选择切换flash资源更充足的mcu芯片作为新的控制器的方案。


技术实现要素:

7.本技术的主要目的在于提供一种程序升级方法、装置和电子设备,以至少解决现有技术中解决升级过程中flash资源紧张问题的更换muc方案容易导致成本较高的问题。
8.为了实现上述目的,根据本技术的一个方面,提供了一种程序升级方法,控制器的程序包括待升级程序和升级数据包,所述升级数据包用于升级所述待升级程序,该方法包括:至少从所述待升级程序和所述升级数据包中提取目标公共代码,得到修改后的所述待升级程序和修改后的所述升级数据包,并将所述目标公共代码存储至目标flash区域,所述目标flash区域为所有的flash区域中的一个,所述目标公共代码至少为所述待升级程序和所述升级数据包的公共代码;接收上位机发送的升级指令,所述升级指令用于表征升级所述修改后的所述待升级程序的指令;根据所述升级指令,将所述目标flash区域中的所述目标公共代码复制到运行内存中,并运行所述运行内存中的所述目标公共代码,并根据所述升级指令中的目标运行标志位,运行所述修改后的所述升级数据包,以采用所述修改后的所述升级数据包升级所述修改后的所述待升级程序,所述目标运行标志位为所述修改后的所述升级数据包的唯一标志。
9.可选地,所述升级指令还包括待升级程序名称,所述待升级程序名称用于表征存储有所述目标公共代码的所述待升级程序的名称,所述待升级程序名称与所述修改后的所述待升级程序的名称相同,
10.在接收上位机发送的升级指令之前,所述方法还包括:将区域映射关系存储至所述控制器的数据库中,所述区域映射关系用于表征所述待升级程序的名称与用于存储所述
待升级程序和对应的所述升级数据包之间的所述公共代码的所述flash区域的位置的映射关系;
11.根据所述升级指令,将所述目标flash区域中的所述目标公共代码复制到运行内存中,包括:根据所述升级指令中的所述待升级程序名称和所述区域映射关系,确定所述目标flash区域的位置;根据所述目标flash区域的位置,将所述目标flash区域中的所述目标公共代码复制到所述运行内存中。
12.可选地,根据所述升级指令中的目标运行标志位,运行所述修改后的所述升级数据包,包括:确定所述修改后的所述升级数据包中是否存在与所述目标运行标志位相同的运行标志位,在所述修改后的所述升级数据包中存在与所述目标运行标志位相同的运行标志位的情况下,运行所述修改后的所述升级数据包。
13.可选地,根据所述升级指令中的目标运行标志位,运行所述修改后的所述升级数据包,包括:在所述修改后的所述升级数据包中不存在与所述目标运行标志位相同的运行标志位的情况下,生成标志位错误报文,所述标志位错误报文用于表征所述升级指令中的所述目标运行标志位错误的报文;接收所述上位机发送的修改后的所述升级指令,所述修改后的所述升级指令包括对应的所述目标运行标志位;根据所述修改后的所述升级指令中的所述目标运行标志位,运行所述修改后的所述升级数据包。
14.可选地,所述升级指令还包括待升级程序目标版本,所述待升级程序目标版本为所述待升级程序需要升级的目标版本,至少从所述待升级程序和所述升级数据包中提取目标公共代码,包括:根据所述待升级程序目标版本,确定与所述待升级程序对应的所述升级数据包;根据所述待升级程序以及所述对应的所述升级数据包,确定所述目标公共代码;从所述待升级程序以及所述对应的所述升级数据包中提取所述目标公共代码。
15.可选地,所述升级指令还包括待升级程序目标版本,所述待升级程序目标版本为所述修改后的所述待升级程序需要升级的目标版本,在根据所述升级指令中的目标运行标志位,运行所述修改后的所述升级数据包之后,所述方法还包括:比较所述待升级程序目标版本和待升级程序当前版本,得到比较结果,所述待升级程序当前版本为所述修改后的所述待升级程序在当前时刻的版本;在所述比较结果为所述待升级程序目标版本和所述待升级程序当前版本相同的情况下,生成升级成功报文,所述升级成功报文为所述修改后的所述待升级程序升级成功的报文;在所述比较结果为所述待升级程序目标版本和所述待升级程序当前版本不相同的情况下,生成升级失败报文,所述升级失败报文为所述修改后的所述待升级程序升级失败的报文。
16.可选地,所述待升级程序为应用程序,所述升级数据包为升级程序,所述升级程序用于升级所述应用程序,
17.至少从所述待升级程序和所述升级数据包中提取目标公共代码,得到修改后的所述待升级程序和修改后的所述升级数据包,包括:从所述应用程序和所述升级程序中提取所述目标公共代码,得到修改后的所述应用程序和修改后的所述升级程序;
18.根据所述升级指令中的目标运行标志位,运行所述修改后的所述升级数据包,包括:根据所述升级指令中的所述目标运行标志位,运行所述修改后的所述升级程序,以采用所述修改后的所述升级程序升级所述修改后的所述应用程序,所述升级指令用于表征升级所述修改后的所述应用程序的指令。
19.可选地,所述控制器的程序还包括应用程序,所述待升级程序为升级程序,所述升级数据包为引导程序,所述引导程序用于升级所述升级程序,所述升级程序用于升级所述应用程序,
20.至少从所述待升级程序和所述升级数据包中提取目标公共代码,得到修改后的所述待升级程序和修改后的所述升级数据包,包括:从所述应用程序、所述升级程序和所述引导程序中提取所述目标公共代码,得到修改后的所述应用程序、修改后的所述升级程序和修改后的所述引导程序;
21.根据所述升级指令中的目标运行标志位,运行所述修改后的所述升级数据包,包括:根据所述升级指令中的所述目标运行标志位,运行所述修改后的所述引导程序,以采用所述修改后的所述引导程序升级所述修改后的所述升级程序,所述升级指令为升级所述修改后的所述升级程序的指令。
22.根据本技术的另一方面,提供了一种程序升级装置,控制器的程序包括待升级程序和升级数据包,所述升级数据包用于升级所述待升级程序,该装置包括第一存储单元、接收单元和第一处理单元,第一存储单元用于至少从所述待升级程序和所述升级数据包中提取目标公共代码,得到修改后的所述待升级程序和修改后的所述升级数据包,并将所述目标公共代码存储至目标flash区域,所述目标flash区域为所有的flash区域中的一个,所述目标公共代码至少为所述待升级程序和所述升级数据包的公共代码;接收单元用于接收上位机发送的升级指令,所述升级指令用于表征升级所述修改后的所述待升级程序的指令;第一处理单元用于根据所述升级指令,将所述目标flash区域中的所述目标公共代码复制到运行内存中,并运行所述运行内存中的所述目标公共代码,并根据所述升级指令中的目标运行标志位,运行所述修改后的所述升级数据包,以采用所述修改后的所述升级数据包升级所述修改后的所述待升级程序,所述目标运行标志位为所述修改后的所述升级数据包的唯一标志。
23.根据本技术的另一方面,提供了一种电子设备,电子设备包括一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的程序升级方法。
24.应用本技术的技术方案,通过至少从所述待升级程序和所述升级数据包中提取目标公共代码,得到修改后的所述待升级程序和修改后的所述升级数据包,并将所述目标公共代码存储至目标flash区域,这样在flash区域中存储有修改后的待升级程序、修改后的升级数据包以及目标公共代码,相比现有技术当中flash区域中存储有待升级程序和升级数据包,即目标公共代码在flash区域中存储了两次,本方案中只在flash区域中存储了一次目标公共代码,所以在flash区域中存储的代码总数减少了。后续根据所述升级指令,将所述目标flash区域中的所述目标公共代码复制到运行内存中,并运行所述运行内存中的所述目标公共代码,得以让目标公共代码直接在运行内存中运行,在flash区域中只需要运行修改后的升级数据包,相比现有技术在flash区域中运行待升级程序和升级数据包的方案来说大大减少了flash区域运行的代码数量,进而减少了flash使用率,并且该方案没有更换设备,也没有调整设备,所以也没有增加设备的成本,从而不仅解决了升级过程中flash的使用紧张的问题,还避免了成本较高的问题,进而解决了现有技术中解决升级过程
中flash资源紧张问题的更换muc方案容易导致成本较高的问题。
附图说明
25.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
26.图1示出了根据本技术的实施例中提供的一种执行程序升级方法的移动终端的硬件结构框图;
27.图2示出了根据本技术的实施例提供的一种程序升级方法的流程示意图;
28.图3示出了根据所述升级指令中的目标运行标志位,运行所述修改后的所述升级数据包的流程示意图;
29.图4示出了至少从所述待升级程序和所述升级数据包中提取目标公共代码的流程示意图;
30.图5示出了根据本技术的实施例提供的另一种程序升级方法的流程示意图;
31.图6示出了根据本技术的实施例提供的一种程序升级装置的结构框图。
32.其中,上述附图包括以下附图标记:
33.61、第一存储单元;62、接收单元;63、第一处理单元。
具体实施方式
34.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
35.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
36.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
37.正如背景技术中所介绍的,如果因应用程序升级,会同时在flash中执行应用程序和升级程序(其中,升级程序用于升级待应用程序),从而同时执行应用程序和升级程序中的全部代码,进而导致出现flash资源紧张的情况,对此现有方案会采用以下三种方案来应对,具体如下:1)删减控制器功能,缺点为导致控制器的功能数量降低,进而导致该控制器与其它控制器的竞争力下降;2)释放flash资源中已占用的空间,缺点与第一种方案相同,会使得控制器中正在运行的功能停止,从而导致控制器与其它控制器的竞争力下降;3)切换flash资源更充足的mcu芯片作为新的控制器,缺点为flash资源更充足相比正在应用的控制器的成本较高,会导致控制器成本增加,为解决现有技术中解决升级过程中flash资源
紧张问题的更换muc方案容易导致成本较高的问题,本技术的实施例提供了一种程序升级方法、装置和电子设备。
38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
39.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种程序升级方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
40.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的程序升级方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
41.在本实施例中提供了一种运行于移动终端、计算机终端或者类似的运算装置的程序升级方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
42.控制器的程序包括待升级程序和升级数据包,上述升级数据包用于升级上述待升级程序,图2是根据本技术的实施例提供的一种程序升级方法的流程示意图。如图2所示,该方法包括以下步骤:
43.步骤s201,至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,上述目标flash区域为所有的flash区域中的一个,上述目标公共代码至少为上述待升级程序和上述升级数据包的公共代码;
44.上述待升级程序和上述升级数据包存储在flash区域中,具体地,采用通过链接文件将升级程序和应用程序中相同的代码放置到同一flash区域的手段从flash区域中提取待升级程序和上述升级数据包的目标公共代码,待升级程序可以为应用程序,也可以为升级程序,升级数据包可以为升级程序,也可以为引导程序,引导程序用于升级上述升级程
序,升级程序用于升级应用程序;
45.步骤s202,接收上位机发送的升级指令,上述升级指令用于表征升级上述修改后的上述待升级程序的指令;
46.具体地,工作人员通过上位机发送升级指令至控制器,控制器再根据升级指令升级修改后的上述待升级程序;
47.步骤s203,根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存中的上述目标公共代码,并根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包,以采用上述修改后的上述升级数据包升级上述修改后的上述待升级程序,上述目标运行标志位为上述修改后的上述升级数据包的唯一标志。
48.具体地,根据升级指令中的目标运行标志位,运行处于flash区域中的上述升级数据包,从而达到采用上述修改后的上述升级数据包升级上述修改后的上述待升级程序的目的。
49.通过上述实施例,通过至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,这样在flash区域中存储有修改后的待升级程序、修改后的升级数据包以及目标公共代码,相比现有技术当中flash区域中存储有待升级程序和升级数据包,即目标公共代码在flash区域中存储了两次,本方案中只在flash区域中存储了一次目标公共代码,所以在flash区域中存储的代码总数减少了。后续根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存中的上述目标公共代码,得以让目标公共代码直接在运行内存中运行,在flash区域中只需要运行修改后的升级数据包,相比现有技术在flash区域中运行待升级程序和升级数据包的方案来说大大减少了flash区域运行的代码数量,进而减少了flash使用率,并且该方案没有更换设备,也没有调整设备,所以也没有增加设备的成本,从而不仅解决了升级过程中flash的使用紧张的问题,还避免了成本较高的问题,进而解决了现有技术中解决升级过程中flash资源紧张问题的更换muc方案容易导致成本较高的问题。在本技术的一种实施例中,上述升级指令还包括待升级程序名称,上述待升级程序名称用于表征存储有上述目标公共代码的上述待升级程序的名称,上述待升级程序名称与上述修改后的上述待升级程序的名称相同,
50.在步骤s202之前,即在接收上位机发送的升级指令之前,上述方法还包括:将区域映射关系存储至上述控制器的数据库中,上述区域映射关系用于表征上述待升级程序的名称与用于存储上述待升级程序和对应的上述升级数据包之间的上述公共代码的上述flash区域的位置的映射关系;
51.具体地,例如abc为上述待升级程序和对应的上述升级数据包之间的上述公共代码,上述待升级程序的名称为d,则区域映射关系用于表征abc和d的映射关系;
52.步骤s203中的根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,包括:根据上述升级指令中的上述待升级程序名称和上述区域映射关系,确定上述目标flash区域的位置;根据上述目标flash区域的位置,将上述目标flash区域中的上述目标公共代码复制到上述运行内存中。
53.具体地,根据上述升级指令中的上述待升级程序名称,从区域映射关系中找出与
上述待升级程序名称对应的上述待升级程序以及对应的上述升级数据包之间的公共代码的存储位置,即用于存储上述待升级程序和对应的上述升级数据包之间的上述公共代码的上述flash区域的位置,将目标flash区域中的上述目标公共代码复制到上述运行内存中,以运行目标公共代码。
54.步骤s203中的根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包,包括:确定上述修改后的上述升级数据包中是否存在与上述目标运行标志位相同的运行标志位,在上述修改后的上述升级数据包中存在与上述目标运行标志位相同的运行标志位的情况下,运行上述修改后的上述升级数据包。
55.具体地,在上述修改后的上述升级数据包中查找是否存在与上述目标运行标志位相同的运行标志位,在修改后的上述升级数据包中存在与上述目标运行标志位相同的运行标志位的情况下,说明升级指令中的目标运行标志位是正确的,直接运行修改后的上述升级数据包即可。
56.步骤s203中根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包,如图3所示,包括以下步骤:
57.步骤s2031,在上述修改后的上述升级数据包中不存在与上述目标运行标志位相同的运行标志位的情况下,生成标志位错误报文,上述标志位错误报文用于表征上述升级指令中的上述目标运行标志位错误的报文;
58.具体地,在上述修改后的上述升级数据包中不存在与上述目标运行标志位相同的运行标志位的情况下,说明此时升级指令中的上述目标运行标志位是错误的运行标志位,需要工作人员修改升级指令中的目标运行标志位,即需要生成标志位错误报文来提醒工作人员需要修改升级指令中的目标运行标志位;
59.步骤s2032,接收上述上位机发送的修改后的上述升级指令,上述修改后的上述升级指令包括对应的上述目标运行标志位;
60.具体地,工作人员在修改完升级指令中的目标运行标志位后,通过上位机将修改后的升级指令发送至控制器,便于后续控制器根据修改后的上述升级指令中的上述目标运行标志位,运行上述修改后的上述升级数据包;
61.步骤s2033,根据上述修改后的上述升级指令中的上述目标运行标志位,运行上述修改后的上述升级数据包。
62.具体地,在上述修改后的上述升级数据包中查找是否存在与上述目标运行标志位相同的运行标志位,在修改后的上述升级数据包中不存在与上述目标运行标志位相同的运行标志位的情况下,说明升级指令中的目标运行标志位是错误的,需要生成标志位错误报文来提醒工作人员,要修改升级指令中的目标运行标志位,接收上述上位机发送的修改后的上述升级指令,并直接根据上述修改后的上述升级指令中修改后的目标运行标志位,运行修改后的上述升级数据包即可。
63.在本技术的一种实施例中,上述升级指令还包括待升级程序目标版本,上述待升级程序目标版本为上述待升级程序需要升级的目标版本,步骤s201中,至少从上述待升级程序和上述升级数据包中提取目标公共代码,如图4所示,包括以下步骤:
64.步骤s2011,根据上述待升级程序目标版本,确定与上述待升级程序对应的上述升级数据包;
65.具体地,通过将待升级程序目标版本与各升级数据包在当前时刻的版本进行对比,能够找到与上述待升级程序对应的上述升级数据包;
66.步骤s2012,根据上述待升级程序以及上述对应的上述升级数据包,确定上述目标公共代码;
67.具体地,根据上述待升级程序以及上述对应的上述升级数据包,能够确定上述待升级程序以及上述对应的上述升级数据包的公共代码,便于后续能够准确的提取目标公共代码;
68.步骤s2013,从上述待升级程序以及上述对应的上述升级数据包中提取上述目标公共代码。
69.具体地,通过将待升级程序目标版本与各升级数据包在当前时刻的版本进行对比,能够找到与上述待升级程序对应的上述升级数据包,再根据上述待升级程序以及上述对应的上述升级数据包,能够确定上述待升级程序以及上述对应的上述升级数据包的公共代码,即确定上述目标公共代码,最后从上述待升级程序以及上述对应的上述升级数据包中提取上述目标公共代码即可。
70.在本技术的一种实施例中,上述升级指令还包括待升级程序目标版本,上述待升级程序目标版本为上述修改后的上述待升级程序需要升级的目标版本,在步骤s204之后,即在根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包之后,上述方法还包括:比较上述待升级程序目标版本和待升级程序当前版本,得到比较结果,上述待升级程序当前版本为上述修改后的上述待升级程序在当前时刻的版本;在上述比较结果为上述待升级程序目标版本和上述待升级程序当前版本相同的情况下,生成升级成功报文,上述升级成功报文为上述修改后的上述待升级程序升级成功的报文;在上述比较结果为上述待升级程序目标版本和上述待升级程序当前版本不相同的情况下,生成升级失败报文,上述升级失败报文为上述修改后的上述待升级程序升级失败的报文。
71.具体地,通过比较上述待升级程序目标版本和待升级程序当前版本,能够达到验证在运行上述修改后的上述升级数据包之后,修改后的待升级程序是否已升级的目的,在上述比较结果为上述待升级程序目标版本和上述待升级程序当前版本相同的情况下,说明升级成功,生成升级成功报文以提醒工作人员升级成功,在上述比较结果为上述待升级程序目标版本和上述待升级程序当前版本不相同的情况下,说明升级失败,生成升级失败报文以提醒工作人员升级失败。
72.在本技术的一种实施例中,上述待升级程序为应用程序,上述升级数据包为升级程序,上述升级程序用于升级上述应用程序,
73.步骤s201中的至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,包括:从上述应用程序和上述升级程序中提取上述目标公共代码,得到修改后的上述应用程序和修改后的上述升级程序;
74.具体地,在上述待升级程序为应用程序,上述升级数据包为升级程序的情况下,从上述应用程序和上述升级程序中提取上述目标公共代码,即可得到修改后的上述应用程序和修改后的上述升级程序,后续再将目标公共代码存储至运行内存中,便于在后续运行上述修改后的上述升级程序时减少flash的使用率;
75.步骤s203中的根据上述升级指令中的目标运行标志位,运行上述修改后的上述升
级数据包,包括:根据上述升级指令中的上述目标运行标志位,运行上述修改后的上述升级程序,以采用上述修改后的上述升级程序升级上述修改后的上述应用程序,上述升级指令用于表征升级上述修改后的上述应用程序的指令。
76.具体地,直接按照上述升级指令中的上述目标运行标志位,找到对应的修改后的上述升级程序,来升级对应的修改后的上述应用程序即可。
77.在本技术的一种实施例中,上述控制器的程序还包括应用程序,上述待升级程序为升级程序,上述升级数据包为引导程序,上述引导程序用于升级上述升级程序,上述升级程序用于升级上述应用程序,
78.步骤s201中的至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,包括:从上述应用程序、上述升级程序和上述引导程序中提取上述目标公共代码,得到修改后的上述应用程序、修改后的上述升级程序和修改后的上述引导程序;
79.具体地,在上述控制器的程序还包括应用程序,上述待升级程序为升级程序,上述升级数据包为引导程序的情况下,从上述应用程序、上述升级程序和上述引导程序中提取上述目标公共代码,即可得到修改后的上述应用程序、修改后的上述升级程序和修改后的上述引导程序,后续再将目标公共代码存储至运行内存中,便于在后续运行上述修改后的上述引导程序时减少flash的使用率;
80.步骤s203中的根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包,包括:根据上述升级指令中的上述目标运行标志位,运行上述修改后的上述引导程序,以采用上述修改后的上述引导程序升级上述修改后的上述升级程序,上述升级指令为升级上述修改后的上述升级程序的指令。
81.具体地,直接按照上述升级指令中的上述目标运行标志位,找到对应的修改后的上述引导程序,来升级对应的修改后的上述升级程序即可。
82.为了使得本领域技术人员能够更加清楚地了解本技术的技术方案,以下将结合具体的实施例对本技术的程序升级方法的实现过程进行详细说明。
83.本实施例涉及一种具体的程序升级方法,控制器的程序包括应用程序、升级程序和引导程序,上述引导程序用于升级上述升级程序,上述升级程序用于升级上述应用程序,如图5所示,包括如下步骤:
84.步骤s1:从应用程序、升级程序和引导程序中提取目标公共代码,得到修改后的应用程序、修改后的升级程序和修改后的引导程序,并将目标公共代码存储至目标flash区域,目标flash区域为所有的flash区域中的一个,目标公共代码为应用程序、升级程序和引导程序的公共代码;
85.步骤s2:接收上位机发送的升级指令;
86.步骤s3:根据升级指令,将目标flash区域中的目标公共代码复制到运行内存中,并运行ram(即运行内存)中的目标公共代码;
87.且在升级指令用于表征升级修改后的升级程序的情况下,根据升级指令中的目标运行标志位,运行修改后的引导程序,以采用修改后的引导程序升级修改后的升级程序;
88.在升级指令用于表征升级修改后的应用程序的情况下,根据升级指令中的目标运行标志位,运行修改后的升级程序,以采用修改后的升级程序升级修改后的应用程序。
89.另外当正常运行应用程序时直接调用目标flash区域的目标公共代码运行即可,因为此时只运行应用程序,flash使用率并没有那么大,直接在flash区域中运行即可,因为运行内存是相当充裕的,所以将目标公共代码放到运行内存中来运行。
90.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
91.本技术实施例还提供了一种程序升级装置,需要说明的是,本技术实施例的程序升级装置可以用于执行本技术实施例所提供的用于程序升级方法。该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
92.以下对本技术实施例提供的程序升级装置进行介绍。
93.图6是根据本技术的实施例提供的一种程序升级装置的结构框图。如图6所示,控制器的程序包括待升级程序和升级数据包,上述升级数据包用于升级上述待升级程序,该装置包括第一存储单元61、接收单元62和第一处理单元63,第一存储单元61用于至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,上述目标flash区域为所有的flash区域中的一个,上述目标公共代码至少为上述待升级程序和上述升级数据包的公共代码;接收单元62用于接收上位机发送的升级指令,上述升级指令用于表征升级上述修改后的上述待升级程序的指令;第一处理单元63用于根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存中的上述目标公共代码,并根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包,以采用上述修改后的上述升级数据包升级上述修改后的上述待升级程序,上述目标运行标志位为上述修改后的上述升级数据包的唯一标志。
94.上述装置中,通过至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,这样在flash区域中存储有修改后的待升级程序、修改后的升级数据包以及目标公共代码,相比现有技术当中flash区域中存储有待升级程序和升级数据包,即目标公共代码在flash区域中存储了两次,本方案中只在flash区域中存储了一次目标公共代码,所以在flash区域中存储的代码总数减少了。后续根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存中的上述目标公共代码,得以让目标公共代码直接在运行内存中运行,在flash区域中只需要运行修改后的升级数据包,相比现有技术在flash区域中运行待升级程序和升级数据包的方案来说大大减少了flash区域运行的代码数量,进而减少了flash使用率,并且该方案没有更换设备,也没有调整设备,所以也没有增加设备的成本,从而不仅解决了升级过程中flash的使用紧张的问题,还避免了成本较高的问题,进而解决了现有技术中解决升级过程中flash资源紧张问题的更换muc方案容易导致成本较高的问题。
95.在本技术的一种实施例中,上述升级指令还包括待升级程序名称,上述待升级程序名称用于表征存储有上述目标公共代码的上述待升级程序的名称,上述待升级程序名称
与上述修改后的上述待升级程序的名称相同,
96.该装置还包括第二存储单元,在接收上位机发送的升级指令之前,第二存储单元用于将区域映射关系存储至上述控制器的数据库中,上述区域映射关系用于表征上述待升级程序的名称与用于存储上述待升级程序和对应的上述升级数据包之间的上述公共代码的上述flash区域的位置的映射关系;
97.第一处理单元包括第一确定模块和第一处理模块,第一确定模块用于根据上述升级指令中的上述待升级程序名称和上述区域映射关系,确定上述目标flash区域的位置;第一处理模块用于根据上述目标flash区域的位置,将上述目标flash区域中的上述目标公共代码复制到上述运行内存中。
98.在本技术的一种实施例中,第一处理单元包括第二确定模块,第二确定模块用于确定上述修改后的上述升级数据包中是否存在与上述目标运行标志位相同的运行标志位,在上述修改后的上述升级数据包中存在与上述目标运行标志位相同的运行标志位的情况下,运行上述修改后的上述升级数据包。
99.在本技术的一种实施例中,第一处理单元包括生成模块、接收模块和第二处理模块,生成模块用于在上述修改后的上述升级数据包中不存在与上述目标运行标志位相同的运行标志位的情况下,生成标志位错误报文,上述标志位错误报文用于表征上述升级指令中的上述目标运行标志位错误的报文;接收模块用于接收上述上位机发送的修改后的上述升级指令,上述修改后的上述升级指令包括对应的上述目标运行标志位;第二处理模块用于根据上述修改后的上述升级指令中的上述目标运行标志位,运行上述修改后的上述升级数据包。
100.在本技术的一种实施例中,上述升级指令还包括待升级程序目标版本,上述待升级程序目标版本为上述待升级程序需要升级的目标版本,第一存储单元包括第三确定模块、第四确定模块和第三处理模块,第三确定模块用于根据上述待升级程序目标版本,确定与上述待升级程序对应的上述升级数据包;第四确定模块用于根据上述待升级程序以及上述对应的上述升级数据包,确定上述目标公共代码;第三处理模块用于从上述待升级程序以及上述对应的上述升级数据包中提取上述目标公共代码。
101.在本技术的一种实施例中,上述升级指令还包括待升级程序目标版本,上述待升级程序目标版本为上述修改后的上述待升级程序需要升级的目标版本,该装置还包括第二处理单元、第三处理单元和第四处理单元,在根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包之后,第二处理单元用于比较上述待升级程序目标版本和待升级程序当前版本,得到比较结果,上述待升级程序当前版本为上述修改后的上述待升级程序在当前时刻的版本;第三处理单元用于在上述比较结果为上述待升级程序目标版本和上述待升级程序当前版本相同的情况下,生成升级成功报文,上述升级成功报文为上述修改后的上述待升级程序升级成功的报文;第四处理单元用于在上述比较结果为上述待升级程序目标版本和上述待升级程序当前版本不相同的情况下,生成升级失败报文,上述升级失败报文为上述修改后的上述待升级程序升级失败的报文。
102.在本技术的一种实施例中,上述待升级程序为应用程序,上述升级数据包为升级程序,上述升级程序用于升级上述应用程序,
103.第一存储单元包括第四处理模块,第四处理模块用于从上述应用程序和上述升级
程序中提取上述目标公共代码,得到修改后的上述应用程序和修改后的上述升级程序;
104.第一处理单元包括第五处理模块,第五处理模块用于根据上述升级指令中的上述目标运行标志位,运行上述修改后的上述升级程序,以采用上述修改后的上述升级程序升级上述修改后的上述应用程序,上述升级指令用于表征升级上述修改后的上述应用程序的指令。
105.在本技术的一种实施例中,上述控制器的程序还包括应用程序,上述待升级程序为升级程序,上述升级数据包为引导程序,上述引导程序用于升级上述升级程序,上述升级程序用于升级上述应用程序,
106.第一存储单元包括第六处理模块,第六处理模块用于从上述应用程序、上述升级程序和上述引导程序中提取上述目标公共代码,得到修改后的上述应用程序、修改后的上述升级程序和修改后的上述引导程序;
107.第一处理单元包括第七处理模块,第七处理模块用于根据上述升级指令中的上述目标运行标志位,运行上述修改后的上述引导程序,以采用上述修改后的上述引导程序升级上述修改后的上述升级程序,上述升级指令为升级上述修改后的上述升级程序的指令。
108.上述程序升级装置包括处理器和存储器,上述第一存储单元、接收单元和第一处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
109.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中解决升级过程中flash资源紧张问题的更换muc方案容易导致成本较高的问题。
110.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
111.本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述程序升级方法。
112.本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述程序升级方法。
113.本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,上述目标flash区域为所有的flash区域中的一个,上述目标公共代码至少为上述待升级程序和上述升级数据包的公共代码;接收上位机发送的升级指令,上述升级指令用于表征升级上述修改后的上述待升级程序的指令;根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存中的上述目标公共代码,并根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包,以采用上述修改后的上述升级数据包升级上述修改后的上述待升级程序,上述目标运行标志位为上述修改后的上述升级数据包的唯一标
志。本文中的设备可以是服务器、pc、pad、手机等。
114.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,上述目标flash区域为所有的flash区域中的一个,上述目标公共代码至少为上述待升级程序和上述升级数据包的公共代码;接收上位机发送的升级指令,上述升级指令用于表征升级上述修改后的上述待升级程序的指令;根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存中的上述目标公共代码,并根据上述升级指令中的目标运行标志位,运行上述修改后的上述升级数据包,以采用上述修改后的上述升级数据包升级上述修改后的上述待升级程序,上述目标运行标志位为上述修改后的上述升级数据包的唯一标志。
115.本技术还提供了一种电子设备,电子设备包括一个或多个处理器,存储器,以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的程序升级方法。通过至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,这样在flash区域中存储有修改后的待升级程序、修改后的升级数据包以及目标公共代码,相比现有技术当中flash区域中存储有待升级程序和升级数据包,即目标公共代码在flash区域中存储了两次,本方案中只在flash区域中存储了一次目标公共代码,所以在flash区域中存储的代码总数减少了。后续根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存中的上述目标公共代码,得以让目标公共代码直接在运行内存中运行,在flash区域中只需要运行修改后的升级数据包,相比现有技术在flash区域中运行待升级程序和升级数据包的方案来说大大减少了flash区域运行的代码数量,进而减少了flash使用率,并且该方案没有更换设备,也没有调整设备,所以也没有增加设备的成本,从而不仅解决了升级过程中flash的使用紧张的问题,还避免了成本较高的问题,进而解决了现有技术中解决升级过程中flash资源紧张问题的更换muc方案容易导致成本较高的问题。
116.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
117.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
118.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
119.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
120.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
121.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
122.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
123.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
124.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
125.从以上的描述中,可以看出,本技术上述的实施例实现了如下技术效果:
126.1)、本技术的程序升级方法,通过至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,这样在flash区域中存储有修改后的待升级程序、修改后的升级数据包以及目标公共代码,相比现有技术当中flash区域中存储有待升级程序和升级数据包,即目标公共代码在flash区域中存储了两次,本方案中只在flash区域中存储了一次目标公共代码,所以在flash区域中存储的代码总数减少了。后续根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存
中的上述目标公共代码,得以让目标公共代码直接在运行内存中运行,在flash区域中只需要运行修改后的升级数据包,相比现有技术在flash区域中运行待升级程序和升级数据包的方案来说大大减少了flash区域运行的代码数量,进而减少了flash使用率,并且该方案没有更换设备,也没有调整设备,所以也没有增加设备的成本,从而不仅解决了升级过程中flash的使用紧张的问题,还避免了成本较高的问题,进而解决了现有技术中解决升级过程中flash资源紧张问题的更换muc方案容易导致成本较高的问题。
127.2)、本技术的程序升级装置,通过至少从上述待升级程序和上述升级数据包中提取目标公共代码,得到修改后的上述待升级程序和修改后的上述升级数据包,并将上述目标公共代码存储至目标flash区域,这样在flash区域中存储有修改后的待升级程序、修改后的升级数据包以及目标公共代码,相比现有技术当中flash区域中存储有待升级程序和升级数据包,即目标公共代码在flash区域中存储了两次,本方案中只在flash区域中存储了一次目标公共代码,所以在flash区域中存储的代码总数减少了。后续根据上述升级指令,将上述目标flash区域中的上述目标公共代码复制到运行内存中,并运行上述运行内存中的上述目标公共代码,得以让目标公共代码直接在运行内存中运行,在flash区域中只需要运行修改后的升级数据包,相比现有技术在flash区域中运行待升级程序和升级数据包的方案来说大大减少了flash区域运行的代码数量,进而减少了flash使用率,并且该方案没有更换设备,也没有调整设备,所以也没有增加设备的成本,从而不仅解决了升级过程中flash的使用紧张的问题,还避免了成本较高的问题,进而解决了现有技术中解决升级过程中flash资源紧张问题的更换muc方案容易导致成本较高的问题。
128.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表