控制器升级方法、装置以及车辆与流程

摘要: 本技术涉及智能车领域,并且,更具体地,涉及一种控制器升级方法、装置以及车辆。背景技术:1、随着智能车在日常生活中被广泛使用,用户期待智能车及其相关设备能够带来更...
控制器升级方法、装置以及车辆与流程

本技术涉及智能车领域,并且,更具体地,涉及一种控制器升级方法、装置以及车辆。

背景技术:

1、随着智能车在日常生活中被广泛使用,用户期待智能车及其相关设备能够带来更加舒适的智能化体验。为了满足用户的需求,汽车制造商和供应商不断地增加智能车内电子控制单元(electronic control unit,ecu)的种类和数量,这些ecu需要通过引导装载程序(bootloader,bl)进行初始化和加载,以确保软件能够正常运行,并实现系统的安全性、稳定性和远程升级能力。

2、目前,随着软件系统在顶层功能和特性上的快速演进,车辆的智能化水平不断提升。这种快速发展也对底层固件提出了更高的适配要求,使得相关的基础软件、驱动程序以及底层通信协议需要不断优化和更新,以确保系统的稳定性和兼容性。这种高频率的适配和迭代过程不可避免地引入了新的安全漏洞,需要通过升级bl固件来解决。

3、然而,当前升级bl固件方案的适用性较差,主要体现在兼容性不足、升级流程复杂以及安全性挑战等方面,因此,如何设计更灵活、安全、高效的bl固件升级方案,降低bl固件的升级风险是亟需解决的问题。

技术实现思路

1、本技术提供一种控制器升级方法、装置以及车辆,该控制器升级方法能够兼容不同类型的ecu,从而提高了bl固件升级的效率,降低了升级风险。

2、第一方面,提供了一种控制器升级方法,控制器包括存储区域,存储区域包括第一启动模式头和第二启动模式头,第一启动模式头至少用于指示第一分区,第一分区为运行存储区域,第二启动模式头至少用于指示第二分区,第二分区为非运行存储区域,该方法包括:获取第一升级文件,第一升级文件包括引导装载bl程序升级包;根据bl程序升级包,执行升级操作。

3、在一种可能的实现方式中,控制器中的存储区域可以是指芯片内部或外部用于存放程序代码、配置数据和运行时信息的物理存储空间,可以包括闪存(flash memory,flash)、存取存储器(random access memory,ram)或寄存器,它们共同支持控制器的启动、执行和功能实现。

4、在一种可能的实现方式中,可以利用第一启动模式头和第二启动模式头中的数据字段(例如,启动分区标志)来指示相应的分区。

5、在一种可能的实现方式中,控制器根据bl程序升级包,执行升级操作可以包括:控制器根据bl程序升级包,对第二bl程序执行刷写。

6、在一种可能的实现方式中,控制器可以指代ecu,即ecu是控制器的一种具体实现形式,广泛应用于汽车中的动力系统、车身控制、信息娱乐等各个模块。

7、本技术实施例中,利用不同的启动模式头指示不同的分区,便于在bl程序升级后,在软件层面动态指示控制器启动时应加载的分区,实现了运行存储区域和非运行存储区域的灵活切换,使得不支持硬件双分区的控制器呈现出支持硬件双分区的特征。通过这样的方式,该控制器升级方法能够兼容不同类型的ecu,在不改变硬件架构的前提下,提高了bl固件升级的效率,降低了升级风险。

8、结合第一方面,在第一方面的某些实现方式中,bl程序升级包包括第一分区中第一bl程序的升级包,根据bl程序升级包,执行升级操作,包括:不执行第一bl程序的升级包的刷写。

9、本技术实施例中,由于第一分区为运行存储区域,当bl程序升级包中包括第一分区中的第一bl程序的升级包时,不执行第一bl程序的程序包的刷写,可以避免对正在使用的启动代码进行刷写而导致的程序启动失败或系统崩溃的情况发生,确保了当前代码运行环境的稳定性和安全性,并降低升级过程中的风险。

10、结合第一方面,在第一方面的某些实现方式中,方法还包括:向安装模块发送第一响应信息,第一响应信息用于指示bl程序升级包刷写成功。

11、本技术实施例中,当bl程序升级包包括第一分区中的第一bl程序的升级包时,在不执行第一bl程序刷写的情况下,控制器可以根据预设逻辑向安装模块反馈“刷写成功”状态,以标志本轮升级任务的完成,通过这样的方式,能够确保整个升级流程的连贯性和稳定性,进一步降低升级过程中的风险。

12、结合第一方面,在第一方面的某些实现方式中,第一启动模式头包括第一循环冗余校验crc校验范围,bl程序升级包包括第二分区中第二bl程序的升级包,或者bl程序升级包包括第一分区中第一bl程序的升级包和第二bl程序的升级包;根据bl程序升级包,执行升级操作,包括:根据第二bl程序的升级包对第二bl程序进行升级,并将第一crc校验范围调整为第二crc校验范围,控制器在第二crc校验范围执行的crc校验失败。

13、本技术实施例中,当bl程序升级包包括第二bl程序升级包,或者包括第一bl程序包和第二bl程序升级包时,控制器在利用第二bl程序升级包完成第二bl程序的升级后,可以将第一启动模式头对应的第一crc校验范围调整至第二crc校验范围,使得第一bl程序启动时避免跳转到运行存储区域,从而实现了运行存储区域和非运行存储区域的灵活切换,使得不支持硬件双分区的控制器呈现出支持硬件双分区的特征,保障了该控制器升级方法能够兼容不同类型的ecu。

14、结合第一方面,在第一方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一版本信息,在根据第二bl程序的升级包对第二bl程序进行升级之前,该方法还包括:获取第二bl程序的第二版本信息;根据第二bl程序的升级包对第二bl程序进行升级,包括:在第一版本信息与第二版本信息不匹配的情况下,根据第二bl程序的升级包对第二bl程序进行升级。

15、在一种可能的实现方式中,在第一版本信息和第二版本信息匹配的情况下,控制器可以丢弃bl程序升级包,跳过第二bl程序的升级流程。

16、本技术实施例中,控制器基于第二bl程序的升级包对第二bl程序进行升级之前,可以预先确认待升级的第二bl程序的第二版本信息与升级文件中的第一版本信息是否匹配。通过这样的方式,可以避免在版本信息匹配的情况下,执行不必要的升级操作,从而了减少控制器的刷写次数,延长了控制器的刷写寿命。

17、结合第一方面,在第一方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一哈希值,在根据第二bl程序的升级包对第二bl程序进行升级之前,该方法还包括:获取第二bl程序的第二哈希值;根据第二bl程序的升级包对第二bl程序进行升级,包括:在第一哈希值与第二哈希值不匹配的情况下,根据第二bl程序的升级包对第二bl程序进行升级。

18、在一种可能的实现方式中,在第一哈希值和第二哈希值匹配的情况下,控制器可以丢弃bl程序升级包,跳过第二bl程序的升级流程。

19、本技术实施例中,由于哈希值作为固件内容完整性与唯一性的标识,能够有效反映程序版本或内容是否发生变化。控制器基于第二bl程序的升级包对第二bl程序进行升级之前,可以预先确认待升级的第二bl程序的第二哈希值与升级文件中的第一哈希值是否匹配。若两个哈希值不匹配,即表明待升级的bl程序与升级包中的目标bl程序在实际内容上不匹配,可以执行升级流程。这样的处理方式,能够有效避免不必要的存储区域的刷写和重启过程,提高bl固件的升级的效率和可靠性。

20、结合第一方面,在第一方面的某些实现方式中,在获取第一升级文件之前,方法还包括:接收安装模块发送的第一请求信息,第一请求信息用于请求读取第二bl程序的版本信息和/或哈希值;根据第一请求信息向安装模块发送第二响应信息,第二响应信息包括第二版本信息和/或第二哈希值。

21、本技术实施例中,控制器可以向安装模块反馈第二响应信息,使得安装模块获知控制器非运行存储区域中第二bl程序的第二版本信息和/或第二哈希值,从而便于安装模块基于第二版本信息和/或第二哈希值确定bl程序升级包中的具体内容。

22、结合第一方面,在第一方面的某些实现方式中,第二启动模式头包括第三crc校验范围,方法还包括:将第三crc校验范围调整为第四crc校验范围,控制器在第四crc校验范围执行的crc校验通过。

23、本技术实施例中,控制器在利用第二bl程序升级包完成第二bl程序的升级后,可以调整第二启动模式头对应的第三crc校验范围,使得第二bl程序启动时跳转到的运行存储区域,从而实现了非运行存储区域和运行存储区域的灵活切换,使得不支持硬件双分区的控制器呈现出支持硬件双分区的特征,保障了该控制器升级方法能够兼容不同类型的ecu。

24、结合第一方面,在第一方面的某些实现方式中,第一升级文件还包括应用程序升级包和/或标定组件升级包,该方法还包括:根据应用程序升级包对第二分区中的应用程序进行升级,和/或,根据标定组件升级包对第二分区中的标定组件进行升级。

25、在一种可能的实现方式中,标定组件可以用于存放可调参数和配置数据,从而使得控制器在无需修改或重新刷写主程序代码的前提下,能够灵活地对所具备功能进行精细调整和动态优化。通过标定组件的设置,开发者或标定工程师可以在系统运行过程中或通过远程方式对参数进行调整,以满足不同工况、产品型号或用户需求的差异,实现控制器的快速迭代与精准控制。

26、本技术实施例中,第一升级文件中除了包括bl程序升级包外,还可以包括应用程序升级包和标定组件升级包,通过这样的方式,控制器可以在一次升级流程中,完成bl程序和其他功能组件的升级,避免了bl程序、应用程序版本和标定组件不配套的问题,提高了控制器的升级可靠性。

27、结合第一方面,在第一方面的某些实现方式中,bl程序的升级包的内容与控制器的类型相关联,控制器的类型包括三个硬件形态,三个硬件形态包括第一硬件形态、第二硬件形态和第三硬件形态,第一硬件形态中的第一bl程序和第二分区中的第二bl程序的启动跳转指令相同,第二硬件形态和第三硬件形态中的第一bl程序和第二bl程序的启动跳转指令不同,且第二硬件形态中的第一分区和第二分区的应用程序和标定组件的启动跳转指令不相同;在获取第一升级文件之前,该方法还包括:发送第一类型信息,第一类型信息用于指示控制器的类型为三个硬件形态中的一种。

28、本技术实施例中,控制器可以向服务器上报控制器的类型,从而便于服务器基于控制器的类型生成相应的bl程序升级包,这样,能够有效避免因升级包的不匹配导致的升级失败,还能够进一步提高控制器的升级效率。

29、结合第一方面,在第一方面的某些实现方式中,bl程序升级包还包括升级地址,根据第二bl程序的升级包对第二分区中的第二bl程序进行升级,包括:根据升级地址确定第一擦除地址,第一擦除地址为对第二bl程序进行擦除的地址;将第一擦除地址上的内容擦除,并将第二bl程序的升级包的数据烧录在第一擦除地址对应的程序代码运行的存储区中。

30、本技术实施例中,控制器bl程序升级包对第二bl程序进行升级的过程中,控制器可以对升级文件中的升级地址进行解析,得到第一擦除地址,并将第二bl程序的升级包的数据烧录在第一擦除地址对应的程序代码运行的存储区中,以完成第二bl程序的升级。这样的处理方式有利于保障bl程序的升级效果,提高bl程序的升级成功率。

31、结合第一方面,在第一方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一描述信息或第二描述信息,第一描述信息用于指示控制器启用bl程序升级功能,第二描述信息用于指示控制器不启用bl程序升级功能,第一描述信息与bl程序升级包的第一ota签名相对应,第二描述信息与bl程序升级包的第二ota签名相对应,第一ota签名与第二ota签名不同;根据bl程序升级包,执行升级操作,包括:在第一升级文件包括第一描述信息的情况下,根据bl程序升级包,执行升级操作。

32、本技术实施例中,通过第一描述信息的应用,能够使能控制器启动bl程序升级功能,通过这样的方式,能够精确控制控制器bl固件升级功能的启动时机,避免误操作或非预期升级,从而进一步降低控制器的升级风险。

33、第二方面,提供了一种控制器升级方法,该方法包括:获取第一升级文件,第一升级文件包括bl程序升级包;向控制器发送第一升级文件;其中,控制器包括存储区域,存储区域包括第一启动模式头和第二启动模式头,第一启动模式头用于指示第一分区,第一分区为运行存储区域,第二启动模式头用于指示第二分区,第二分区为非运行存储区域。

34、本技术实施例中,安装模块可以向控制器发送第一升级文件,控制器可以利用第一升级文件进行bl程序的升级。由于控制器利用不同的启动模式头指示不同的分区,便于在bl程序升级后,在软件层面动态指示控制器启动时应加载的分区,实现了运行存储区域和非运行存储区域的灵活切换,使得不支持硬件双分区的控制器呈现出支持硬件双分区的特征。通过这样的方式,该控制器升级方法能够兼容不同类型的ecu,在不改变硬件架构的前提下,提高了bl固件升级的效率,降低了升级风险。

35、结合第二方面,在第二方面的某些实现方式中,bl程序升级包包括第一分区中第一bl程序的升级包,或者bl程序升级包包括第二分区中第二bl程序的升级包,或者bl程序升级包包括第一bl程序的升级包和第二bl程序的升级包。

36、本技术实施例中,安装模块可以基于控制器的类型,向控制器发送特定的bl程序升级包,通过这样的方式,能够更有针对性地实现bl程序升级包的传输,提高了控制器的升级可靠性。

37、结合第二方面,在第二方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一版本信息和/或第一哈希值,向控制器发送第一升级文件,包括:在第一版本信息和第二版本信息不匹配,和/或第一哈希值与第二哈希值不匹配的情况下,向控制器发送第一升级文件。

38、本技术实施例中,安装模块在向控制器发送第一升级文件之前,可以判断bl程序包中的版本信息和/或哈希值,是否与控制器待升级的bl程序的版本信息和/或哈希值匹配。通过这样的方式,可以避免在版本信息或哈希值匹配的情况下,向控制器发送第一升级文件,使得控制器执行不必要的升级操作,从而了减少控制器的刷写次数,延长了控制器的刷写寿命。

39、结合第二方面,在第二方面的某些实现方式中,第一升级文件还包括应用程序升级包和/或标定组件升级包,应用程序升级包用于第二分区中的应用程序的升级,标定组件升级包用于第二分区中的标定组件的升级。

40、本技术实施例中,第一升级文件中除了包括bl程序升级包外,还可以包括应用程序升级包和标定组件升级包,通过这样的方式,控制器可以在一次升级流程中,完成bl程序和其他功能组件的升级,避免了bl程序、应用程序版本和标定组件不配套的问题,提高了控制器的升级可靠性。

41、结合第二方面,在第二方面的某些实现方式中,获取第一升级文件,包括:生成第一升级文件。

42、在一种可能的实现方式中,生成第一升级文件的过程可以包括bl程序升级包的合并,例如,将第一bl程序升级包和第二bl程序升级包合并为bl程序升级包。

43、结合第二方面,在第二方面的某些实现方式中,bl程序的升级包的内容与控制器的类型相关联,控制器的类型包括三个硬件形态,三个硬件形态包括第一硬件形态、第二硬件形态和第三硬件形态,第一硬件形态中的第一bl程序和第二分区中的第二bl程序的启动跳转指令相同,第二硬件形态和第三硬件形态中的第一bl程序和第二bl程序的启动跳转指令不同,且第二硬件形态中的第一分区和第二分区的应用程序和标定组件的启动跳转指令不相同;在生成第一升级文件之前,该方法包括:接收控制器发送的第一类型信息,第一类型信息用于指示控制器的类型为三个硬件形态中的一种;生成第一升级文件,包括:根据第一类型信息,生成第一升级文件。

44、本技术实施例中,服务器可以基于控制器上报的控制器类型生成相应的bl程序升级包,并向控制器发送包括bl程序升级包的第一升级文件。这样,能够有效避免因升级包的不匹配导致的升级失败,还能够进一步提高控制器的升级效率。

45、结合第二方面,在第二方面的某些实现方式中,向控制器发送第一升级文件,包括:通过诊断仪或空中下载技术ota管理平台向控制器发送第一升级文件。

46、本技术实施例中,服务器可以通过诊断仪或ota管理平台向控制器发送第一升级文件,通过这种方式,服务器能够基于不同的升级场景,灵活选择升级文件的发送方式,从而实现对控制器程序的高效、精准、安全升级。

47、结合第二方面,在第二方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一描述信息或第二描述信息,第一描述信息用于指示控制器启用bl程序升级功能,所述第二描述信息用于指示所述控制器不启用所述bl程序升级功能,所述第一描述信息与所述bl程序升级包的第一ota签名相对应,所述第二描述信息与所述bl程序升级包的第二ota签名相对应,所述第一ota签名与所述第二ota签名不同。

48、第三方面,提供了一种控制器升级装置,装置包括:获取单元和处理单元,获取单元,用于获取第一升级文件,第一升级文件包括引导装载bl程序升级包;处理单元,用于根据bl程序升级包,执行升级操作。

49、结合第三方面,在第三方面的某些实现方式中,处理单元,还用于不执行第一bl程序的升级包的刷写。

50、结合第三方面,在第三方面的某些实现方式中,改装置还包括:收发单元,用于向安装模块发送第一响应信息,第一响应信息用于指示bl程序升级包刷写成功。

51、结合第三方面,在第三方面的某些实现方式中,第一启动模式头包括第一循环冗余校验crc校验范围,bl程序升级包包括第二分区中第二bl程序的升级包,或者bl程序升级包包括第一分区中第一bl程序的升级包和第二bl程序的升级包;处理单元,具体用于根据第二bl程序的升级包对第二bl程序进行升级,并将第一crc校验范围调整为第二crc校验范围,控制器在第二crc校验范围执行的crc校验失败。

52、结合第三方面,在第三方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一版本信息,获取单元,还用于获取第二bl程序的第二版本信息;处理单元,具体用于在第一版本信息与第二版本信息不匹配的情况下,根据第二bl程序的升级包对第二bl程序进行升级。

53、结合第三方面,在第三方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一哈希值,获取单元,还用于获取第二bl程序的第二哈希值;处理单元,具体用于在第一哈希值与第二哈希值不匹配的情况下,根据第二bl程序的升级包对第二bl程序进行升级。

54、结合第三方面,在第三方面的某些实现方式中,收发单元,还用于接收安装模块发送的第一请求信息,第一请求信息用于请求读取第二bl程序的版本信息和/或哈希值;处理单元,还用于根据第一请求信息向安装模块发送第二响应信息,第二响应信息包括第二版本信息和/或第二哈希值。

55、结合第三方面,在第三方面的某些实现方式中,第二启动模式头包括第三crc校验范围,处理单元,还用于将第三crc校验范围调整为第四crc校验范围,控制器在第四crc校验范围执行的crc校验通过。

56、结合第三方面,在第三方面的某些实现方式中,第一升级文件还包括应用程序升级包和/或标定组件升级包,处理单元,还用于根据应用程序升级包对第二分区中的应用程序进行升级,和/或,根据标定组件升级包对第二分区中的标定组件进行升级。

57、结合第三方面,在第三方面的某些实现方式中,bl程序的升级包的内容与控制器的类型相关联,控制器的类型包括三个硬件形态,三个硬件形态包括第一硬件形态、第二硬件形态和第三硬件形态,第一硬件形态中的第一bl程序和第二分区中的第二bl程序的启动跳转指令相同,第二硬件形态和第三硬件形态中的第一bl程序和第二bl程序的启动跳转指令不同,且第二硬件形态中的第一分区和第二分区的应用程序和标定组件的启动跳转指令不相同;收发单元,还用于发送第一类型信息,第一类型信息用于指示控制器的类型为三个硬件形态中的一种。

58、结合第三方面,在第三方面的某些实现方式中,bl程序升级包还包括升级地址,处理单元,还用于:根据升级地址确定第一擦除地址,第一擦除地址为对第二bl程序进行擦除的地址;将第一擦除地址上的内容擦除,并将第二bl程序的升级包的数据烧录在第一擦除地址对应的程序代码运行的存储区中。

59、结合第三方面,在第三方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一描述信息或第二描述信息,第一描述信息用于指示控制器启用bl程序升级功能,第二描述信息用于指示控制器不启用bl程序升级功能,第一描述信息与bl程序升级包的第一ota签名相对应,第二描述信息与bl程序升级包的第二ota签名相对应,第一ota签名与第二ota签名不同;处理单元,具体用于在第一升级文件包括第一描述信息的情况下,根据bl程序升级包,执行升级操作。

60、第四方面,提供了一种控制器升级装置,装置包括:获取单元和收发单元,收发单元,用于向控制器发送第一升级文件;其中,控制器包括存储区域,存储区域包括第一启动模式头和第二启动模式头,第一启动模式头用于指示第一分区,第一分区为运行存储区域,第二启动模式头用于指示第二分区,第二分区为非运行存储区域。

61、结合第四方面,在第四方面的某些实现方式中,bl程序升级包包括第一分区中第一bl程序的升级包,或者bl程序升级包包括第二分区中第二bl程序的升级包,或者bl程序升级包包括第一bl程序的升级包和第二bl程序的升级包。

62、结合第四方面,在第四方面的某些实现方式中,收发单元,还用于:向控制器发送第一请求信息,第一请求信息用于请求读取第二分区中的第二bl程序的版本信息和/或哈希值;接收控制器发送的第一响应信息,第一响应信息包括第二bl程序的第二版本信息和/或第二哈希值。

63、结合第四方面,在第四方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一版本信息和/或第一哈希值,收发单元,具体用于在第一版本信息和第二版本信息不匹配,和/或第一哈希值与第二哈希值不匹配的情况下,向控制器发送第一升级文件。

64、结合第四方面,在第四方面的某些实现方式中,第一升级文件还包括应用程序升级包和/或标定组件升级包,应用程序升级包用于第二分区中的应用程序的升级,标定组件升级包用于第二分区中的标定组件的升级。

65、结合第四方面,在第四方面的某些实现方式中,装置还包括处理单元,处理单元,用于生成第一升级文件。

66、结合第四方面,在第四方面的某些实现方式中,bl程序的升级包的内容与控制器的类型相关联,控制器的类型包括三个硬件形态,三个硬件形态包括第一硬件形态、第二硬件形态和第三硬件形态,第一硬件形态中的第一bl程序和第二分区中的第二bl程序的启动跳转指令相同,第二硬件形态和第三硬件形态中的第一bl程序和第二bl程序的启动跳转指令不同,且第二硬件形态中的第一分区和第二分区的应用程序和标定组件的启动跳转指令不相同;收发单元,还用于接收控制器发送的第一类型信息,第一类型信息用于指示控制器的类型为三个硬件形态中的一种;处理单元,还用于根据第一类型信息,生成第一升级文件。

67、结合第四方面,在第四方面的某些实现方式中,收发单元,具体用于通过诊断仪或空中下载技术ota管理平台向控制器发送第一升级文件。

68、结合第四方面,在第四方面的某些实现方式中,第一升级文件还包括bl程序升级包的第一描述信息或第二描述信息,第一描述信息用于指示控制器启用bl程序升级功能,第二描述信息用于指示控制器不启用bl程序升级功能,第一描述信息与bl程序升级包的第一ota签名相对应,第二描述信息与bl程序升级包的第二ota签名相对应,第一ota签名与第二ota签名不同。

69、第五方面,提供一种控制器升级装置,包括:至少一个处理器和存储器,至少一个处理器与存储器耦合,用于读取并执行存储器中的指令,使得该装置实现上述第一方面或第二方面中任意一种实现方式中的方法。

70、第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第二方面中任意一种实现方式中的方法。

71、第七方面,提供一种芯片,该芯片包括电路,该电路用于执行上述第一方面或第二方面中任意一种实现方式中的方法。

72、第八方面,提供一种计算机程序产品,该计算机产品包括计算机程序,当所述计算机程序被处理器运行时,使得上述第一方面或第二方面中任意一种实现方式中的方法被执行。

73、第九方面,提供了一种车辆,包括:上述第三方面或第四方面任意一种实现方式中的控制器升级装置。

74、第十方面,提供了一种服务器,包括:上述第四方面任意一种实现方式中的控制器升级装置。