软件升级方法、装置、系统、设备及存储介质与流程

文档序号:33504024发布日期:2023-03-17 23:01阅读:47来源:国知局
软件升级方法、装置、系统、设备及存储介质与流程

1.本公开涉及计算机技术领域,尤其涉及软件升级方法、装置、系统、设备及存储介质。


背景技术:

2.空中下载技术(overtheair,ota),是通过移动通信的空中接口实现对移动终端设备进行远程管理的技术。基于ota的软件升级方法,凭借其具有的减少召回成本、快速响应升级需求、提升用户体验等优点,广泛应用在车辆领域。
3.但是,现有的基于ota的软件升级方法,在升级设备的中央处理器(central processing unit,cpu)向二级存储器刷写软件升级程序时,需使用多种复杂的应用层协议,如文件传输协议(file transfer protocol,ftp),超文本传输协议(hyper text transfer protocol,http)等,这些协议一般是通过软件实现,并且软件的实现十分复杂,导致软件升级占用的系统资源较多。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了软件升级方法、装置、系统、设备及存储介质。
5.第一方面,本公开提供了一种软件升级方法,包括:
6.接收目标软件对应的软件升级数据;
7.确定目标软件对应的待升级设备;
8.在检测到待升级设备支持内存直接访问技术的情况下,获取目标软件对应的目标刷写地址;
9.向待升级设备发送待刷写数据,待刷写数据包括目标刷写地址和软件升级数据。
10.第二方面,本公开还提供了一种软件升级方法,包括:
11.在支持内存直接访问技术的情况下,接收升级管理设备发送的待刷写数据,待刷写数据包括目标刷写地址和目标软件对应的软件升级数据;
12.采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
13.第三方面,本公开还提供了一种软件升级装置,包括
14.第一接收模块,配置为接收目标软件对应的软件升级数据;
15.确定模块,配置为确定目标软件对应的待升级设备;
16.获取模块,配置为在检测到待升级设备支持内存直接访问技术的情况下,获取目标软件对应的目标刷写地址;
17.第一发送模块,配置为向待升级设备发送待刷写数据,待刷写数据包括目标刷写地址和软件升级数据。
18.第四方面,本公开还提供了一种软件升级装置,包括:
19.第二接收模块,配置为在支持内存直接访问技术的情况下,接收升级管理设备发送的待刷写数据,待刷写数据包括目标刷写地址和目标软件对应的软件升级数据;
20.写入模块,配置为采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
21.第五方面,本公开还提供了一种软件升级系统,包括:待升级设备和升级管理设备;
22.其中,待升级设备用于接收目标软件对应的软件升级数据;确定目标软件对应的待升级设备;在检测到待升级设备支持内存直接访问技术的情况下,获取目标软件对应的目标刷写地址;向待升级设备发送待刷写数据,待刷写数据包括目标刷写地址和软件升级数据;
23.升级管理设备用于在支持内存直接访问技术的情况下,接收升级管理设备发送的待刷写数据,待刷写数据包括目标刷写地址和目标软件对应的软件升级数据;采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
24.第六方面,本公开还提供了一种计算设备,包括:
25.处理器;
26.存储器,用于存储可执行指令;
27.其中,处理器用于从存储器中读取可执行指令,并执行可执行指令以实现上述第一方面的软件升级方法或者第二方面的软件升级方法。
28.第七方面,本公开还提供了一种计算机可读存储介质,存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现上述第一方面的软件升级方法或者第二方面的软件升级方法。
29.本公开实施例提供的技术方案与现有技术相比具有如下优点:
30.本公开实施例的软件升级方法,能够接收目标软件对应的软件升级数据;确定目标软件对应的待升级设备;在检测到待升级设备支持内存直接访问技术的情况下,获取目标软件对应的目标刷写地址;向待升级设备发送待刷写数据,待刷写数据包括目标刷写地址和软件升级数据,以使待升级设备采用内存直接访问技术,将软件升级数据写入目标刷写地址。如此,软件升级数据可绕过cpu被直接写入目标刷写地址,即该软件升级数据的写入过程不占用cpu资源,节省下来的cpu资源可用来进行其它操作,有利于提高cpu的效率。
附图说明
31.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
32.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
33.图1为本公开实施例提供的一种软件升级方法的流程示意图;
34.图2为本公开实施例提供的一种软件升级过程的流程示意图;
35.图3为本公开实施例提供的一种软件升级方法的流程示意图;
36.图4为本公开实施例提供的一种软件升级过程的流程示意图;
37.图5为本公开实施例提供的一种软件升级装置的结构示意图;
38.图6为本公开实施例提供的一种软件升级装置的结构示意图;
39.图7为本公开实施例提供的一种软件升级系统的结构示意图;
40.图8为本公开实施例提供的一种软件升级系统的工作流程示意图;
41.图9为本公开实施例提供的一种计算设备的结构示意图。
具体实施方式
42.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
43.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
44.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
45.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
46.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
47.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
48.图1为本公开实施例提供的一种软件升级方法的流程示意图。
49.在本公开一些实施例中,图1所示的方法可以应用于车辆的升级管理设备,升级管理设备可以为车辆中的主控制设备升级管理设备例如可以为行车电脑。
50.如图1所示,该软件升级方法可以包括如下步骤。
51.s110、接收目标软件对应的软件升级数据。
52.具体地,目标软件为待升级设备待升级的软件程序,其具体实现功能此处不作限定,示例性地,目标软件可以包括交互软件,例如包括导航软件、或者音频播放软件等;目标软件还可以包括自动驾驶类控制软件,例如,自动泊车入库软件、自动路径规划软件、或者自动碰撞预警软件等。
53.具体地,软件升级数据是目标软件从低版本向高版本更新过程中所需的软件升级包,通过该软件升级数据,目标软件可实现软件升级,以达到提高性能或修复漏洞等功能。
54.具体地,可以采用无线通信技术,接收服务器发送的软件升级数据。其中,服务器上的软件升级数据可以是由目标软件的开发者或者待升级设备车辆的生产商上传至服务器的,此处不作限定。
55.s120、确定目标软件对应的待升级设备。
interface,spi)总线中的一种。
69.可选地,在向待升级设备发送待刷写数据之前,确定待升级设备对应的目标总线。待升级设备对应的目标总线的获取方式,本领域技术人员可根据实际情况设置,此处不作限定。
70.可选地,可通过查询区域控制设备-总线对应关系表确定待升级设备对应的目标总线。
71.具体地,向待升级设备发送待刷写数据的具体实施方式,本领域技术人员可根据实际情况设置,此处不作限定。
72.可选地,向待升级设备发送待刷写数据之前还包括:向待升级设备发送针对目标软件的升级请求,以使待升级设备反馈待升级设备的数据传输参数;向待升级设备发送待刷写数据包括:根据数据传输参数向待升级设备发送待刷写数据。
73.其中,数据传输参数包括最大传输单元大小以及剩余缓存区大小。最大传输单元大小为待升级设备对应的总线能通过的最大数据包的大小;剩余缓存区大小为待升级设备的缓存区中剩余缓存区的大小。
74.可选地,根据数据传输参数向待升级设备发送待刷写数据包括:
75.将待刷写数据切分为多个待刷写数据包,通过总线向待升级设备发送待刷写数据包。
76.其中,待刷写数据包的大小小于等于最大传输单元大小,软件升级数据的大小小于等于剩余缓存区大小。可选地,刷写数据还可以包括剩余缓存区大小,以便待升级设备判断软件升级数据大小与剩余缓存区大小之间的关系。
77.可以理解的是,当目标软件对应的软件升级包的大小大于剩余缓存区大小时,将软件升级包分割为多块软件升级数据,重复执行s110-s140,直至将软件升级包全部发送至第一外部存储设备即可。
78.还可以理解的是,不同软件对应的区域控制设备可能不同,不同区域控制设备的剩余缓冲区大小可能不同,并且,不同区域控制设备对应的总线的最大传输单元大小也可能不同。因此,当需要升级的目标软件变化后,目标软件对应的待升级设备也可能会相应发生变化。根据待升级设备对应的最大传输单元大小以及剩余缓存区大小将待刷写数据切分为多个待刷写数据包后再进行传输,可降低数据传输错误的概率,为向不同待升级设备准确传输数据奠定基础。
79.具体地,在检测到目标软件对应的待升级设备支持内存直接访问技术的情况下,可向待升级设备发送待刷写数据,以使待升级设备采用dma将软件升级数据写入目标刷写地址。
80.可以理解的是,由于dma技术允许在区域控制设备和存储器之间直接读写数据,既不通过cpu,也不需要cpu干预。因此,支持dma的待升级设备接收到刷写数据之后,可绕过cpu将软件升级数据直接写入目标地址。如此,在软件升级数据写入目标地址的过程中,cpu可以进行其它的工作,避免让cpu工作拖延,有利于提高cpu的工作效率。
81.本公开实施例的软件升级方法,能够接收目标软件对应的软件升级数据;确定目标软件对应的待升级设备;在检测到待升级设备支持内存直接访问技术的情况下,获取目标软件对应的目标刷写地址;向待升级设备发送待刷写数据,待刷写数据包括目标刷写地
址和软件升级数据,以使待升级设备采用内存直接访问技术,将软件升级数据写入目标刷写地址。如此,软件升级数据可绕过cpu被直接写入目标刷写地址,即该软件升级数据的写入过程不占用cpu资源,节省下来的cpu资源可用来进行其它操作,有利于提高cpu的效率。
82.在本公开另一实施例中,可选地,在检测到待升级设备不支持内存直接访问技术的情况下,向待升级设备发送软件升级数据。
83.具体地,在检测到目标软件对应的待升级设备不支持内存直接访问技术的情况下,可向待升级设备发送软件升级数据,以使待升级设备的cpu基于传统访问技术将软件升级数据写入待升级设备的二级存储器的目标刷写地址下。如此,无论待升级设备是否支持dma,均可将软件升级数据写入目标刷写地址,从而完成目标软件的升级。
84.在本公开另一实施例中,可选地,在接收目标软件对应的软件升级数据之前,该方法还包括:检查待升级设备所属的车辆是否满足软件升级条件;其中,接收目标软件对应的软件升级数据,包括:在车辆满足软件升级条件的情况下,接收软件升级数据。
85.具体地,在检查待升级设备所属的车辆是否满足软件升级条件之前,还可以接收软件升级通知,其中,并检查待升级设备所属的车辆是否满足软件升级条件包括:在接收到软件升级通知的情况下,检查待升级设备所属的车辆是否满足软件升级条件。
86.具体地,软件升级条件的具体内容,本领域技术人员可根据实际情况设置,此处不作限定。
87.可选地,软件升级条件包括下列中的至少一种:车辆速度为预设速度值、剩余电池电量大于或等于预设电量阈值、点火开关控制端子处于关闭状态。
88.示例性地,获取车辆的当前车速;在当前车速不等于预设速度值时,确定车辆不满足软件升级条件;在当前车速等于预设速度值时,确定车辆满足软件升级条件。例如,预设速度值可以为0或者小于等于20km/h。
89.可以理解的是,当车辆速度为预设速度值时,表明车辆当前处于一种稳定的行驶状态,而不是处于急刹车、急转弯、上坡、或者下坡等危险系数较高的状态,在车辆处于稳定的状态下进行软件升级,可避免软件升级过程影响行驶安全。
90.当剩余电池电量大于或等于预设电量阈值,表明电池剩余电量较多,虽然软件升级过程中会消耗部分电量,但是也可以满足车辆的正常运行对电量的需求。
91.当点火开关控制端子处于关闭状态时,表明车辆当前处于未启动的状态,此时进行软件升级,可避免软件升级过程影响行驶安全。
92.可见,在待升级设备所属车辆满足软件升级条件满足的情况下,再向待升级设备发送待刷写数据以进行目标软件升级,可使目标软件升级是在车辆处于安全的状态下进行的,避免产生安全隐患,确保人车安全。
93.可选地,在车辆不满足软件升级条件的情况下,每隔预设时间间隔再检查一次车辆是否满足软件升级条件,直至检查到车辆满足软件升级条件。如此,可在车辆处于安全的状态下及时接收升级数据,以便后续尽快升级目标软件。
94.在本公开另一实施例中,可选地,向待升级设备发送待刷写数据之后还可以包括:计算待刷写数据对应的校验值;向待升级设备发送校验值,以使待升级设备根据校验值判断软件升级数据是否接收完整。
95.具体地,校验值的具体计算方式,本领域技术人员可根据实际情况设置,此处不作
限定。
96.可选地,可采用哈希函数(hash function)计算待刷写数据对应的哈希值;将哈希值作为校验值。
97.可以理解的是,通过向待升级设备发送校验值,可使待升级设备根据校验值判断待软件升级数据是否接收完整。当待升级设备判断接收的待刷写数据不完整时,向升级管理设备反馈重新发送请求,升级管理设备响应于重新发送请求,重新发送待刷写数据;当待升级设备判断接收的待刷写数据完整时,向升级管理设备反馈接收成功通知,升级管理设备响应于接收成功通知,删除升级管理设备的缓冲区中的待刷写数据。
98.再次重新向待升级设备发送待刷写数据,以确保待刷写数据的完整传输。
99.可选地,向待升级设备发送待刷写数据之后还可以包括:接收待升级设备发送的接收成功通知;响应于接收成功通知,删除待刷写数据。
100.可以理解的是,当接收到待升级设备发送的接收成功通知时,表明待升级设备已经完整地接收了待刷写数据,此时,删除待刷写数据可增大升级管理设备的缓存区的剩余空间,节省出的缓存区的空间可用来存储其它数据。
101.在本公开另一实施例中,在确定目标软件完成升级之后,控制待升级设备所属的车辆重启。
102.具体地,确定目标软件是否完成升级的具体实施方式,本领域技术人员可根据实际情况设置,此处不作限定。
103.可选地,可在接收到待升级设备发送的升级完成通知后,控制车辆重启。
104.可以理解的是,车辆重启后,升级完成后的目标软件可开启工作,为用户提供更优的服务。
105.下面,将基于一个具体示例,对本公开实施例提供的软件升级方法进行详细说明。
106.图2为本公开实施例提供的一种软件升级过程的流程示意图。
107.如图2所示,该软件升级过程可以具体包括如下步骤。
108.s2010、接收软件升级通知。
109.s2020、检查待升级设备所属的车辆是否满足软件升级条件。若否,执行s2030;若是,执行2040。
110.s2030、每隔预设时间间隔再检查一次车辆是否满足软件升级条件,直至检查到车辆满足软件升级条件。
111.s2040、接收目标软件对应的软件升级数据。
112.s2050、确定目标软件对应的待升级设备。
113.s2060、检测待升级设备是否支持内存直接访问技术。若否,执行s2070;若是,执行s2080。
114.s2070、向待升级设备发送软件升级数据。
115.具体,向待升级设备发送软件升级数据后,待升级设备的cpu基于传统访问技术将软件升级数据写入待升级设备的二级存储器的目标刷写地址下。
116.s2080、向待升级设备发送待刷写数据。
117.其中,待刷写数据包括目标刷写地址和软件升级数据。
118.具体地,向待升级设备发送待刷写数据后,可使待升级设备采用内存直接访问技
术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
119.s2090、计算待刷写数据对应的校验值。
120.s2100、向待升级设备发送校验值。
121.具体地,向待升级设备发送校验值后,可使待升级设备根据校验值判断软件升级数据是否接收完整,待升级设备确定接收完整后向升级管理设备发送接收成功通知。
122.s2110、接收待升级设备发送的接收成功通知。
123.s2120、响应于接收成功通知,删除待刷写数据。
124.s2130、接收待升级设备发送的升级完成通知。
125.s2140、控制待升级设备所在的车辆重启。
126.本公开实施例的软件升级方法,在满足软件升级条件的情况下才进行软件升级数据的刷写,避免软件升级数据的刷写不会带来安全隐患,可提高人车安全系数。并且,采用dma绕过cpu直接将软件升级数据写入目标刷写地址,可使软件升级数据写入目标刷写地址的过程不占用cpu资源,可节省cpu资源。并且,在向待升级设备发送待刷写数据之后,进行校验值的计算,可使第一设备根据校验值判断软件数据是否完整接收,以便在待升级设备接收的待刷写数据不完整时,再次重新向待升级设备发送待刷写数据,从而确保待刷写数据的完整传输。此外,响应于接收成功通知删除待刷写数据,可将无用数据从升级管理设备的缓存区中移除,以便用来存储其它数据,提高升级管理设备的缓存区的利用率。并且,在目标软件升级完成后控制车辆重启,可使升级后的目标软件尽快投入使用。
127.图3为本公开实施例提供的一种软件升级方法的流程示意图。
128.在本公开一些实施例中,图3所示的方法可以应用于车辆的待升级设备,待升级设备可以为车辆中不同于升级管理设备的一个主控设备,待升级设备例如可以为行车电脑。
129.如图3所示,该软件升级方法可以包括如下步骤。
130.s310、在支持内存直接访问技术的情况下,接收升级管理设备发送的待刷写数据。
131.其中,待刷写数据包括目标刷写地址和目标软件对应的软件升级数据。
132.具体地,升级管理设备发送的待刷写数据中的目标刷写地址最初可以是由待升级设备发送给升级管理设备的。可选地,接收升级管理设备发送的待刷写数据之前还可以包括:接收升级管理设备发送的针对目标软件的地址请求;响应于地址请求,向升级管理设备反馈目标软件对应的目标刷写地址。
133.具体地,目标刷写地址还可以是由升级管理设备查询软件、区域控制设备、地址三者之间的关联关系表,而确定的目标软件对应的目标刷写地址。
134.关于目标软件、目标刷写地址、以及软件升级数据的解释,可参照前文理解,此处不作赘述。
135.具体地,可通过总线接收升级管理设备发送的待刷写数据。
136.可选地,接收升级管理设备发送的待刷写数据之前还可以包括:接收升级管理设备发送的针对目标软件的升级请求;响应于升级请求向升级管理设备反馈待升级设备的数据传输参数,以使升级管理设备将待刷写数据切分为多个待刷写数据包,通过总线向待升级设备待刷写数据包。接收升级管理设备发送的待刷写数据包括:接收升级管理设备发送的待刷写数据包。
137.其中,数据传输参数包括最大传输单元大小以及剩余缓存区大小。待刷写数据包
的大小小于等于最大传输单元大小,软件升级数据的大小小于等于剩余缓存区大小。关于最大传输单元大小以及剩余缓存区大小的解释,可参照前文理解,此处不作赘述。
138.s320、采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
139.具体地,待升级设备可以包括dma控制器和二级存储器。dma控制器可以根据目标刷写地址将待升级设备的缓存区中的软件升级数据写入二级存储器,从而实现对目标软件的升级。
140.可以理解的是,相关技术中,升级管理设备将刷写数据通过待升级设备的接口发送至待升级设备的cpu,再由cpu根据目标刷写地址将软件刷写数据写入第一设备的二级存储器。然而,本公开中,由于待升级设备支持dma,待升级设备中的dma控制器接收到刷写数据之后,可绕过cpu将软件升级数据直接写入目标刷写地址。如此,在软件升级数据写入目标刷写地址的过程中,cpu可以进行其它的工作,避免让cpu工作拖延,有利于提高cpu的工作效率。
141.可选地,在不支持内存直接访问技术的情况下,接收升级管理设备发送的软件升级数据后,待升级设备的cpu基于传统访问技术将软件升级数据写入待升级设备的二级存储器的目标刷写地址下。
142.本公开实施例的软件升级方法,能够在支持内存直接访问技术的情况下,接收升级管理设备发送的待刷写数据,采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。如此,软件升级数据可绕过cpu被直接写入目标刷写地址,即该软件升级数据的写入过程不占用cpu资源,节省下来的cpu资源可用来进行其它操作,有利于提高cpu的效率。
143.在本公开另一些实施例中,可选地,目标刷写地址包括目标软件对应的二级存储器的存储器地址和在二级存储器内的起始写入地址。
144.具体地,存储器地址用于确定软件刷写数据具体写入第一外部存储设被中的哪一个二级存储器。起始写入地址用于确定软件刷写数据在目标软件对应的二级存储器中开始写入软件刷写数据的具体位置。
145.可选地,采用内存直接访问技术,将软件升级数据写入目标刷写地址包括:根据存储器地址确定二级存储器;根据起始写入地址,采用内存直接访问技术将软件升级数据写入二级存储器。
146.具体地,dma控制器可以根据存储器地址确定软件刷写数据写入的二级存储器;dma控制器还可以根据起始写入地址,采用dma将软件升级数据写入该二级存储器。
147.在本公开另一些实施例中,可选地,在采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级之前,该方法还包括:接收升级管理设备发送的校验值;根据校验值判断软件升级数据是否接收完整。
148.其中,采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级,包括:在软件升级数据接收完整的情况下,采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
149.可选地,当判断软件升级数据接收完整的情况下,还可以向升级管理设备发送接收成功通知。如此,升级管理设备可响应于接收成功通知删除升级管理设备的缓冲区中的
待刷写数据。
150.可选地,当判断软件升级数据接收不完整的情况下,向升级管理设备发送重新发送请求,以使升级管理设备重新发送待刷写数据,直至检测到软件升级数据接收完整。
151.可以理解的是,待升级设备在检测到接收的待刷写数据不完整时,请求升级管理设备再次重新发送待刷写数据,有利于提高待刷写数据的传输完整性。
152.可选地,采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级之后,还可以包括:删除待升级设备的缓冲区中的待刷写数据。
153.可以理解的是,当待刷写数据写入目标刷写地址之后,删除待升级设备的缓冲区中的待刷写数据可增大待升级设备的缓存区的剩余空间,节省出的缓存区的空间可用来存储其它数据。
154.下面,将基于一个具体示例,对本公开实施例提供的软件升级方法进行详细说明。
155.图4为本公开实施例提供的一种软件升级过程的流程示意图。
156.如图4所示,该软件升级过程可以具体包括如下步骤。
157.s410、在支持内存直接访问技术的情况下,接收升级管理设备发送的待刷写数据。
158.其中,待刷写数据包括目标刷写地址和软件升级数据。
159.s420、接收升级管理设备发送的校验值。
160.s430、根据校验值判断软件升级数据是否接收完整。若否,执行440;若是,执行450。
161.s440、向升级管理设备发送重新发送请求,以使第二外部存储设备重新发送待刷写数据,直至检测到软件升级数据接收完整。
162.s450、向升级管理设备发送接收成功通知。
163.s460、采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
164.s470、删除待升级设备的缓冲区中的待刷写数据。
165.s480、在不支持内存直接访问技术的情况下,接收升级管理设备发送的软件升级数据。
166.s490、基于传统访问技术将软件升级数据写入待升级设备的二级存储器的目标刷写地址下。
167.本公开实施例的软件升级方法,采用dma绕过cpu直接将软件升级数据写入目标刷写地址,可使软件升级数据写入目标刷写地址的过程不占用cpu资源,可节省cpu资源。并且,能够根据校验值判断软件数据是否完整接收,以便在接收的待刷写数据不完整时,请求升级管理设备再次重新发送待刷写数据,从而确保待刷写数据的完整传输。此外,将软件升级数据写入目标刷写地址后,删除待升级设备的缓冲区中的待刷写数据,可将无用数据从待升级设备的缓存区中移除,以便用来存储其它数据,提高待升级设备的缓存区的利用率。
168.图5为本公开实施例提供的一种软件升级装置的结构示意图。
169.在本公开一些实施例中,图5所示的装置可以应用于车辆的其中一主控设备中,例如应用于车辆的其中一行车电脑中。
170.如图5所示,该软件升级装置可以包括:
171.第一接收模块510,配置为接收目标软件对应的软件升级数据;
172.确定模块520,配置为确定目标软件对应的待升级设备;
173.获取模块530,配置为在检测到待升级设备支持内存直接访问技术的情况下,获取目标软件对应的目标刷写地址;
174.第一发送模块540,配置为向待升级设备发送待刷写数据,待刷写数据包括目标刷写地址和软件升级数据。
175.本公开实施例的软件升级装置,能够接收目标软件对应的软件升级数据;确定目标软件对应的待升级设备;在检测到待升级设备支持内存直接访问技术的情况下,获取目标软件对应的目标刷写地址;向待升级设备发送待刷写数据,待刷写数据包括目标刷写地址和软件升级数据,以使待升级设备采用内存直接访问技术,将软件升级数据写入目标刷写地址。如此,软件升级数据可绕过cpu被直接写入目标刷写地址,即该软件升级数据的写入过程不占用cpu资源,节省下来的cpu资源可用来进行其它操作,有利于提高cpu的效率。
176.在本公开另一些实施例中,可选地,该装置还可以包括检查模块;
177.检查模块,可以配置为在接收目标软件对应的软件升级数据之前,检查待升级设备所属的车辆是否满足软件升级条件;
178.其中,第一接收模块510具体可以配置为在车辆满足软件升级条件的情况下,接收软件升级数据。
179.在本公开另一些实施例中,可选地,软件升级条件包括下列中的至少一种:车辆速度为预设速度值、剩余电池电量大于或等于预设电量阈值、点火开关控制端子处于关闭状态。
180.需要说明的是,图5所示的软件升级装置500可以执行图1和图2所示的方法实施例中的各个步骤,并且实现图1和图2所示的方法实施例中的各个过程和效果,在此不做赘述。
181.图6为本公开实施例提供的一种软件升级装置的结构示意图。
182.在本公开一些实施例中,图6所示的装置可以应用于车辆的其中一主控设备中,例如应用于车辆的其中一行车电脑中。图5和图6所示装置可以应用于不同主控设备中。
183.如图6所示,该软件升级装置可以包括:
184.第二接收模块610,配置为在支持内存直接访问技术的情况下,接收升级管理设备发送的待刷写数据,待刷写数据包括目标刷写地址和目标软件对应的软件升级数据;
185.写入模块620,配置为采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
186.本公开实施例的软件升级装置,能够在支持内存直接访问技术的情况下,接收升级管理设备发送的待刷写数据,采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。如此,软件升级数据可绕过cpu被直接写入目标刷写地址,即该软件升级数据的写入过程不占用cpu资源,节省下来的cpu资源可用来进行其它操作,有利于提高cpu的效率。
187.在本公开另一些实施例中,可选地,目标刷写地址包括目标软件对应的二级存储器的存储器地址和软件升级数据在二级存储器内的起始写入地址。
188.在本公开另一些实施例中,可选地,该装置还可以包括第三接收模块、以及判断模块;
189.第三接收模块,配置为在采用内存直接访问技术,将软件升级数据写入目标刷写
地址,以对目标软件进行升级之前,接收升级管理设备发送的校验值;
190.判断模块,可以配置为根据校验值判断软件升级数据是否接收完整;
191.其中,写入模块620,具体配置为在软件升级数据接收完整的情况下,采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
192.需要说明的是,图6所示的软件升级装置600可以执行图3和图4所示的方法实施例中的各个步骤,并且实现图3和图4所示的方法实施例中的各个过程和效果,在此不做赘述。
193.图7为本公开实施例提供的一种软件升级系统的结构示意图。
194.在本公开一些实施例中,图7所示的软件升级系统可以应用于车辆中,用于对目标软件进行升级。
195.参见图7,软件升级系统包括:待升级设备710和升级管理设备720;
196.其中,待升级设备710用于接收目标软件对应的软件升级数据;确定目标软件对应的待升级设备710;在检测到待升级设备710支持内存直接访问技术的情况下,获取目标软件对应的目标刷写地址;向待升级设备710发送待刷写数据,待刷写数据包括目标刷写地址和软件升级数据;
197.升级管理设备720用于在支持内存直接访问技术的情况下,接收升级管理设备720发送的待刷写数据,待刷写数据包括目标刷写地址和目标软件对应的软件升级数据;采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
198.本公开实施例的软件升级系统,升级管理设备能够在检测到目标软件对应的待升级设备支持内存直接访问技术的情况下,确定目标软件对应的目标刷写地址,并且,向待升级设备发送待刷写数据,待刷写数据包括目标刷写地址和软件升级数据,以使待升级设备采用内存直接访问技术,将软件升级数据写入目标刷写地址。如此,软件升级数据可绕过cpu被直接写入目标刷写地址,即该软件升级数据的写入过程不占用cpu资源,节省下来的cpu资源可用来进行其它操作,有利于提高cpu的效率。
199.在本公开另一实施例中,可选地,升级管理设备还用于检查待升级设备所属的车辆是否满足软件升级条件;
200.其中,升级管理设备具体用于在车辆满足软件升级条件的情况下,接收软件升级数据。
201.可选地,软件升级条件包括下列中的至少一种:
202.车辆速度为预设速度值、剩余电池电量大于或等于预设电量阈值、点火开关控制端子处于关闭状态。
203.具体地,升级管理设备的具体结构,本领域技术人员可根据实际情况设置,此处不作限定。示例性地,升级管理设备包括第二哈希控制器、第二缓存控制器、第二硬件控制器以及第二协议控制器。
204.在本公开另一实施例中,继续参见图7,可选地,目标刷写地址包括目标软件对应的二级存储器711的存储器地址和软件升级数据在二级存储器711内的起始写入地址。
205.可选地,待升级设备还用于在采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级之前接收升级管理设备发送的校验值;根据校验值判断软件升级数据是否接收完整;
206.其中,待升级设备具体用于在软件升级数据接收完整的情况下,采用内存直接访
问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
207.具体地,待升级设备710的具体结构,本领域技术人员可根据实际情况设置,此处不作限定。示例性地,待升级设备710包括二级存储器711、第一dma控制器、第一哈希控制器、第一缓存控制器、第一硬件控制器以及第一协议控制器。
208.需要说明的是,图7所示的软件升级系统与图1-图4所示的方法实施例中的软件升级方法具有相同的效果,在此不做赘述。
209.下面,将基于一个具体示例,对本公开实施例提供的软件升级系统进行详细说明。
210.图8为本公开实施例提供的一种软件升级系统的工作流程示意图。
211.如图8所示,该软件升级系统工作流程可以具体包括如下步骤。
212.s8010、升级管理设备接收软件升级通知。
213.s8020、升级管理设备检查待升级设备所属的车辆是否满足软件升级条件。若否,执行s8030;若是,执行8040。
214.s8030、升级管理设备每隔预设时间间隔再检查一次车辆是否满足软件升级条件,直至检查到车辆满足软件升级条件。
215.s8040、升级管理设备接收目标软件对应的软件升级数据。
216.s8050、升级管理设备确定目标软件对应的待升级设备。
217.s8060、升级管理设备在检测待升级设备是否支持内存直接访问技术。若否,执行s8070;若是,执行s8090。
218.s8070、升级管理设备向待升级设备发送软件升级数据。
219.s8080、待升级设备的cpu基于传统访问技术将软件升级数据写入待升级设备的二级存储器的目标刷写地址下。
220.s8090、获取目标软件对应的目标刷写地址。
221.s8100、升级管理设备向待升级设备发送待刷写数据。
222.其中,待刷写数据包括目标刷写地址和软件升级数据。
223.s8110、待升级设备接收升级管理设备发送的待刷写数据。
224.s8120、升级管理设备计算待刷写数据对应的校验值。s8130、升级管理设备向待升级设备发送校验值。
225.s8140、待升级设备接收升级管理设备发送的校验值。
226.s8150、待升级设备根据校验值判断软件升级数据是否接收完整。若否,执行8160;若是,执行8170。
227.s8160、待升级设备向升级管理设备发送重新发送请求,以使第二外部存储设备重新发送待刷写数据,直至检测到软件升级数据接收完整。
228.s8170、待升级设备向升级管理设备发送接收成功通知。
229.s8180、待升级设备采用内存直接访问技术,将软件升级数据写入目标刷写地址,以对目标软件进行升级。
230.s8190、待升级设备删除待升级设备的缓冲区中的待刷写数据。
231.s8200、升级管理设备接收待升级设备发送的接收成功通知。
232.s8210、升级管理设备响应于接收成功通知,删除待刷写数据。
233.s8220、升级管理设备接收待升级设备发送的升级完成通知。
234.s8230、升级管理设备控制待升级设备所在的车辆重启。
235.本公开实施例的软件升级系统,升级管理设备在满足软件升级条件的情况下才进行软件升级数据的刷写,避免软件升级数据的刷写不会带来安全隐患,可提高人车安全系数。并且,待升级设备采用dma绕过cpu直接将软件升级数据写入目标刷写地址,可使软件升级数据写入目标刷写地址的过程不占用cpu资源,可节省cpu资源。并且,升级管理设备在向待升级设备发送待刷写数据之后,进行校验值的计算,可使第一设备根据校验值判断软件数据是否完整接收,以便在待升级设备接收的待刷写数据不完整时,升级管理设备再次重新向待升级设备发送待刷写数据,从而确保待刷写数据的完整传输。此外,升级管理设备响应于接收成功通知删除待刷写数据,可将无用数据从升级管理设备的缓存区中移除,以便用来存储其它数据,提高升级管理设备的缓存区的利用率。待升级设备将软件升级数据写入目标刷写地址后,删除待升级设备的缓冲区中的待刷写数据,可将无用数据从待升级设备的缓存区中移除,以便用来存储其它数据,提高待升级设备的缓存区的利用率。
236.图9为本公开实施例提供的一种计算设备的结构示意图。
237.在本公开一些实施例中,图9所示的计算设备可以为待升级设备,也可以为升级管理设备。
238.如图9所示,该计算设备可以包括处理器901以及存储有计算机程序指令的存储器902。
239.具体地,上述处理器901可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
240.存储器902可以包括用于信息或指令的大容量存储器。举例来说而非限制,存储器902可以包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个及其以上这些的组合。在合适的情况下,存储器902可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器902可在综合网关设备的内部或外部。在特定实施例中,存储器902是非易失性固态存储器。在特定实施例中,存储器902包括只读存储器(read-only memory,rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(programmable rom,prom)、可擦除prom(electrical programmable rom,eprom)、电可擦除prom(electrically erasable programmable rom,eeprom)、电可改写rom(electrically alterable rom,earom)或闪存,或者两个或及其以上这些的组合。
241.处理器901通过读取并执行存储器902中存储的计算机程序指令,当计算设备为升级管理设备时,可以执行图1和图2所示的方法实施例中的各个步骤;当计算设备为待升级管理设备时,可以执行图3和图4所示的方法实施例中的各个步骤。
242.在一个示例中,该计算设备还可包括收发器903和总线904。其中,如图9所示,处理器901、存储器902和收发器903通过总线904连接并完成相互间的通信。
243.总线904包括硬件、软件或两者。举例来说而非限制,总线可包括加速图形端口(accelerated graphics port,agp)或其他图形总线、增强工业标准架构(extended industry standard architecture,eisa)总线、前端总线(front side bus,fsb)、超传输(hyper transport,ht)互连、工业标准架构(industrial standard architecture,isa)总
线、无限带宽互连、低引脚数(low pin count,lpc)总线、存储器总线、微信道架构(micro channel architecture,mca)总线、外围控件互连(peripheral component interconnect,pci)总线、pci-express(pci-x)总线、串行高级技术附件(serial advanced technology attachment,sata)总线、视频电子标准协会局部(video electronics standards association local bus,vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线904可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
244.本公开实施例还提供了一种计算机可读存储介质,该存储介质可以存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现本公开实施例所提供的软件升级方法。
245.上述的存储介质可以例如包括计算机程序指令的存储器902,上述指令可由计算设备的处理器901执行以完成本公开实施例所提供的软件升级方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(random access memory,ram)、光盘只读存储器(compact discrom,cd-rom)、磁带、软盘和光数据存储设备等。
246.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
247.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1