一种车载终端固件升级方法及电子装置与流程

文档序号:27615819发布日期:2021-11-29 13:13阅读:217来源:国知局
一种车载终端固件升级方法及电子装置与流程

1.本技术涉及商用车领域,具体涉及一种车载终端固件升级方法及电子装置。


背景技术:

2.目前,市面上大多数的嵌入式设备都具有固件升级功能。固件是指那些承担着设备最基础、最底层工作的程序的集合,一般存储于设备中的非易失存储器中,如eeprom(electrically erasable programmable read only memory)或flash存储器(flash memory快闪记忆体)。固件升级是指对终端设备的原有固件进行的更新操作,其目的是完善设备功能、增强系统稳定性或修补漏洞等。
3.在进行固件升级时,引导分区中的引导模块会基于升级策略信息,将待升级的固件镜像直接写入运行分区。该操作执行完毕后,设备将重启,然后执行运行分区中已升级的固件。
4.但是上述方法存在诸多问题,例如升级过程由于种种原因(如断电)被中断,或升级的固件与设备的硬件不兼容等情况出现时,会导致设备无法正常工作。另外,前述升级策略信息在设备出场时即在引导分区中被写好且不能改变,会限制用户进行固件升级时的灵活性。
5.特别的,在商用车辆(例如公交车、出租车、工程车等)上均配备有各式车载终端。商用车辆由于其运行条件的特殊性,在固件升级过程中更容易出现中断的可能,例如由于车辆熄火而导致的断电,蓄电池性能引起的电压不稳,可能面临的高温、强磁场等行驶环境等,均易导致固件升级的中断。另外由于车载终端的设备型号可能存在各种差异,固件升级后也可能发生硬件与固件不兼容的现象。


技术实现要素:

6.基于此,本技术提供了一种车载终端固件升级方法及电子装置。本技术提出的方案通过设置升级标记、判断固件是否升级成功、判断升级固件后的车载终端能否正常启动等方法,将车载终端固件升级过程中存在并可能出现的问题一一探明并进行解决。使得车载终端在进行固件升级时不会由于出现意外而造成车载终端无法工作,且具有更佳的升级灵活性。
7.根据本技术的一方面提出一种车载终端固件升级方法,包括:
8.将固件镜像存储至升级分区,并生成升级标记;
9.在所述车载终端启动时检查是否存在所述升级标记;
10.若存在所述升级标记,则进行固件升级。
11.根据一些实施例,前述方法还包括:解析所述固件镜像,得到升级策略信息;基于所述升级策略信息,将所述固件镜像写入运行分区,其中,所述运行分区包括多个运行子分区,所述固件镜像用于升级所述多个运行子分区中的一或多个。
12.根据一些实施例,前述方法还包括:若固件升级成功,则清除所述升级标记。
13.根据一些实施例,前述方法还包括:若固件升级成功,则检查所述车载终端能否正常启动;若所述车载终端能正常启动,则进行固件备份;若所述车载终端不能正常启动,则进行固件降级。
14.根据一些实施例,前述方法还包括:若所述车载终端启动后可以稳定运行,则生成升级确认标记。
15.根据一些实施例,前述方法还包括:所述车载终端启动时检查是否存在所述升级确认标记;若存在所述升级确认标记,则比较所述运行分区的固件与备份分区中所述固件的版本号是否一致;若所述运行分区的固件与所述备份分区中所述固件镜像的版本号不一致,则将所述运行分区中的全部数据存储至所述备份分区。
16.根据一些实施例,所述备份分区在所述车载终端出厂时存储有所述运行分区的全部数据。
17.根据一些实施例,前述方法还包括:所述车载终端启动时检查是否存在所述升级确认标记;若不存在所述升级确认标记,则累计启动次数;若所述启动次数到达预设的启动次数阈值,则判定所述车载终端不能正常启动。
18.根据一些实施例,前述方法还包括:将所述备份分区中的全部数据写入所述运行分区。
19.根据本技术的一方面提出一种用于车载终端固件升级方法的装置,包括:升级准备模块,将固件镜像存储至升级分区,并生成升级标记;升级校验模块,在所述车载终端启动时检查是否存在所述升级标记;升级执行模块,若存在所述升级标记,则进行固件升级。
20.根据本技术的一方面提出一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如前述中任一所述的方法。
21.本技术的有益效果:
22.根据一些实施例,本技术通过设置升级标记并对其进行检查,可以解决因固件升级过程中断而导致的车载终端无法正常工作的问题。
23.根据一些实施例,本技术通过在升级用的固件镜像中设置升级策略信息,使得用户可以自行对固件升级的升级策略进行改变,从而使固件升级具有更加的灵活性及自由度,能满足更多的用户需求。
24.根据一些实施例,本技术通过设置备份分区及升级确认标记,并检查车载终端在成功进行固件升级后能否正常工作,使得当新升级的固件出现不兼容问题时,可以进行固件降级从而使车载终端可以保持正常工作状态。
附图说明
25.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图,而并不超出本技术要求保护的范围。
26.图1示出根据本技术实施例的车载终端固件升级方法的流程图。
27.图2示出另一根据本技术实施例的车载终端固件升级方法的流程图。
28.图3示出另一根据本技术实施例的车载终端固件升级方法的流程图。
29.图4示出根据一实施例的车载终端固件升级方法的固件镜像文件结构示意图。
30.图5示出另一根据一实施例的车载终端固件升级方法的存储分区示意图。
31.图6示出根据本技术实施例的车载终端固件升级方法的装置的框图。
32.图7示出根据一示例性实施例的一种电子设备的框图。
具体实施方式
33.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本技术将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
34.所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有这些特定细节中的一个或更多,或者可以采用其它的方式、组元、材料、装置或等。在这些情况下,将不详细示出或描述公知结构、方法、装置、实现、材料或者操作。
35.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
36.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
37.商用车辆(例如公交车、出租车、工程车等)出于作业特点,均需要装配车载终端,并且车载终端具有普遍的固件升级需求。但由于车辆运行条件的特殊性,在车载终端容易出现各种异常状况,例如车辆熄火会导致车载终端设备断电;蓄电池性能下降易引起电压不稳从而使车载终端异常重启;由于曝晒及发动机工作产生的高温,以及其他车辆设备或原件运行时产生的强磁场等因素同样可能导致车载终端进入异常状况。当车载终端在固件升级过程中出现异常状况时,极易造成固件升级不完整而使车载终端无法正常启动。另外由于车载终端的设备型号可能存在各种差异,固件升级后也可能发生硬件与固件不兼容的现象。用户对于车载终端的固件升级时遵循的升级策略也可能存在个性化需求。
38.针对上述问题,本技术一一提出了对应的解决方法,如通过设置升级标记并对其进行检查,以确保车载终端在固件升级时,即使发生异常中断也可以进入正常工作状态;通过设置备份分区及升级确认标记,并检查车载终端在成功进行固件升级后能否正常工作,使得当新升级的固件出现不兼容问题时,可以进行固件降级从而使车载终端可以保持正常工作状态;通过在升级用的固件镜像中设置升级策略信息,使得用户可以自行对固件升级的升级策略进行改变及调整,从而使固件升级具有更加的灵活性及自由度,能满足更多的用户需求。详见后述。
39.根据本技术实施例,车载终端的固件、升级用的固件镜像等存储于非易失存储器中。
40.根据一实施例,该非易失存储器的分区逻辑包括引导分区、运行分区、标记分区、升级分区、备份分区以及其他分区。可参考如图5所示的存储分区示意图。
41.根据一实施例,引导分区内存储有引导模块,引导模块负责在车载终端启动时引导终端设备进入固件的操作系统,或者引导进行固件升级等。
42.根据一实施例,为了保证车载终端的稳定性,引导分区通常设置为不可擦写,即只读状态,故引导模块在车载终端出厂后一般是无法在正常操作模式下进行更改的。
43.其他分区及作用详见后述。
44.需要注意的是,本技术对于所涉及的分区方式及分区数量并不限定,可以根据车载终端的存储情况予以调整。只要能够实现本技术所提出的方法即可。
45.图1示出根据本技术实施例的车载终端固件升级方法的流程图。
46.如图1所示,在s101,将固件镜像存储至升级分区并生成升级标记。
47.根据一实施例,本技术固件镜像包括固件镜像头部数据、固件升级策略信息、多个固件镜像包以及其他格式内容。可以参照如图4的固件镜像文件结构示意图所示。
48.根据一实施例,前述固件镜像头部数据用于校验固件镜像的有效性与完整性。
49.根据一实施例,前述固件升级策略信息用于指导具体的升级操作,例如指导将前述多个固件镜像包中的每一个分别写入其指定的目的存储地址或者存储路径,在本技术中此固件升级策略信息由用户定制,而在传统方法中此升级策略信息在车载终端出场时被写入引导模块而无法改变。
50.根据一实施例,前述多个固件镜像包为固件镜像的主体,即系统功能等数据的集合。其中数据的类型可以包括如系统程序数据,应用程序数据,文件数据等。不同的固件镜像包对应不同的存储位置。
51.根据一实施例,其他格式内容可以包括非实体文件类的数据内容,例如可以为系统参数,可按前述升级策略信息的设置,随固件升级过程配置于系统。只要用户在升级策略信息中集成相应的处理逻辑即可,大大提高了固件升级的灵活性。
52.根据一实施例,固件镜像可以由用户通过特定的打包程序进行打包而生成。
53.根据示例实施例,车载终端在进行固件升级时,首先接收固件升级指令,将固件镜像存储到升级分区,并且同时生成升级标记。
54.根据一实施例,车载终端可以通过例如无线通信网络接收或下载固件镜像文件,还可以通过例如文件系统从存储介质拷贝固件镜像至升级分区。
55.根据一实施例,升级分区即为存储待升级固件镜像的分区。进行升级时,车载终端的引导模块将会从该升级分区中找到固件镜像。
56.根据一实施例,升级标记可以存储于前述标记分区中。
57.根据一实施例,标记分区存储用于查验车载终端所处状态的各种标记。由于标记的数据量很小,所以标记分区所占用的存储空间相对较小。
58.根据一实施例,升级标记用于记录车载终端是否处于固件升级状态。
59.在s103,在车载终端启动时检查是否存在升级标记。
60.根据一实施例,在用户确认进行固件升级,并将固件镜像存储至升级分区以及生
成升级标记后,车载终端将重新启动以进行固件升级。
61.根据一实施例,每次车载终端启动时会加载引导模块,引导模块会首先于前述标记分区中检查是否存在升级标记,以确定是否需要进行固件升级。
62.在s105,若存在升级标记则进行固件升级。
63.根据一实施例,如果引导模块检查存在升级标记,则意味着需要进行固件升级,引导模块将会进行后续处理。
64.根据另一实施例,若引导模块检查不存在升级标记,则会正常加载并启动车载终端固件中的操作系统。
65.图2示出另一根据本技术实施例的车载终端固件升级方法的流程图。
66.其中,s201、s203与图1中的流程一致,此处不再赘述。s205与s207是对前述s105步骤的进一步展开。
67.在s205,解析固件镜像得到升级策略信息。
68.根据示例实施例,由引导模块对固件镜像进行解析,得到前述固件镜像头部数据、固件升级策略信息、多个固件镜像包以及其他格式内容。
69.根据一实施例,引导模块还查验固件镜像头部数据,以确认其有效性与完整性。
70.根据一实施例,若固件镜像经过压缩处理,则用户可以在升级策略信息中集成相应的解压缩处理逻辑。
71.在s207,基于升级策略信息将固件镜像写入运行分区。
72.根据一实施例,运行分区具体还可分为多个运行子分区,可以分别存储车载终端的固件、应用、文件等。
73.根据示例实施例,如前述,升级策略信息记录了多个固件镜像包中的每个对应存放的运行子分区及存储路径。如此,引导模块可以加载升级策略信息,并执行升级策略将固件镜像的内容写入运行分区的对应位置。
74.需要注意的是,每次升级可能并不对全部的运行子分区进行数据写入,因而会对多个运行子分区中的一个或多个执行固件升级的数据写入处理。
75.根据一实施例,若固件镜像经过压缩处理,引导模块还可以依据升级策略信息中集成的解压缩处理逻辑对其解压缩。
76.根据示例实施例,当固件升级成功完成时,引导模块会清除升级标记,以使得车载终端在下次启动时直接载入操作系统。
77.根据一实施例,当固件升级过程中出现异常,如断电、重启等,在下一次车载终端启动时,升级标记仍然存在,引导模块将会再次进行固件升级,直至固件升级正常完成。
78.图3示出另一根据本技术实施例的车载终端固件升级方法的流程图。
79.其中,s301、s303、s305与图1中的流程一致,此处不再赘述。s307、s309为后续处理的展开。
80.在s307,若固件升级成功则检查车载终端能否正常启动。
81.根据示例实施例,当固件升级成功后,引导模块清除升级标记并重新启动车载终端,再由引导模块检查车载终端是否能够正常启动。
82.根据示例实施例,正常启动的标志是车载终端能够稳定运行,即正常进入固件的操作系统并运行持续一段时间。该持续时间可以为人为设置,时长要使得操作系统能够完
整加载并稳定运行。
83.根据一实施例,当车载终端固件升级成功后,并且进入操作系统一稳定时长后可以由操作系统向用户弹出交互提示,让用户确认操作系统是否正常运行,若用户确认操作系统运行正常,则生成升级确认标记。
84.根据一实施例,操作系统还可以自动根据启动时长、模块加载完成度等指标自行确认运行正常,并生成升级确认标记。
85.根据一实施例,升级确认标记存储于前述标记分区中。
86.升级确认标记的存在即表示车载终端在进行固件升级后可以正常启动并运行。
87.根据一实施例,该升级确认标记将在下一次进行固件升级时被清除。
88.根据示例实施例,若车载终端能正常启动,则进行固件镜像备份。具体的,车载终端在启动时若引导模块检查存在该升级确认标记,则比较运行分区中现存的固件的版本号与备份分区中固件镜像的版本号是否一致。
89.根据一实施例,备份分区存储有最近一次正常运行的固件所对应的的固件,即运行分区的全部数据。在车载终端出厂时,备份分区存储有原始的运行分区的全部数据。
90.根据示例实施例,若前述版本号的比较结果不一致,则说明备份分区存储的固件需要与当前运行的固件进行同步。于是将运行分区内的全部数据存储至备份分区以进行备份。
91.根据另一实施例,还可以用升级分区内的固件镜像覆盖备份分区内的固件镜像。
92.根据一实施例,还可以生成包括运行分区的全部内容的固件镜像以及对应的降级策略信息,并用于固件镜像备份,此方法可以节省备份内容占用的存储空间,但是会使处理过程复杂化。此处的降级策略信息与前述升级策略信息实质相同,仅用“升级”和“降级”区别其作用。
93.根据一实施例,在固件备份完成后,可以清除升级分区内的固件镜像,如此可以节省存储空间。
94.根据示例实施例,车载终端在启动时若引导模块检查不存在该升级确认标记,则累加一次启动计数。启动计数的初始值为0。
95.根据一实施例,当生成升级确认标记时,同时将启动计数恢复初始值。
96.根据示例实施例,当启动计数的值到达一预设的阈值时,则判定车载终端不能正常启动。
97.根据一实施例,前述阈值为人为设置的经验值,该值不宜过大,以避免使得车载终端做过多无意义的重启。例如可以设置为5,即表明车载终端在连续重启5次后仍未能正常进入操作系统,便可以判定车载终端不能正常启动。
98.在s309,若车载终端不能正常启动则进行固件降级。
99.根据一实施例,当备份分区中存储的是之前运行分区的全部数据时,可直接将备份分区中的数据覆盖写入到运行分区中,即完成固件降级。
100.根据另一实施例,当备份分区中存储的是固件镜像文件,则执行与前述升级过程类似的步骤,此处不再赘述。
101.根据一实施例,固件降级的处理用于当车载终端进行固件升级后发生的新固件无法正常启动的情况下,例如新升级的固件可能与硬件不兼容,或者固件内容本身具有缺陷
等。在此情况下进行固件降级,可以使车载终端恢复到最近一个稳定运行的固件,而不会出现车载终端升级后无法启动的状况。
102.图6示出根据本技术实施例的车载终端固件升级方法的装置的框图。
103.图7示出根据一示例性实施例的一种电子设备的框图。
104.下面参照图7来描述根据本技术的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
105.如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
106.其中,存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书描述的根据本技术各种示例性实施方式的方法。例如,处理单元710可以执行前面描述的的方法。
107.存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(rom)7203。
108.存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
109.总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
110.电子设备700也可以与一个或多个外部设备7001(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
111.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本技术实施方式的上述方法。
112.软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
113.计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
114.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
115.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现前述功能。
116.本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
117.通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本技术实施例的方法。
118.以上对本技术实施例进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本技术的方法及其核心思想。同时,本领域技术人员依据本技术的思想,基于本技术的具体实施方式及应用范围上做出的改变或变形之处,都属于本技术保护的范围。综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1