1.本发明涉及计算机领域,尤其涉及一种驱动器固件批量升级的方法。
背景技术:2.随着技术更新迭代的速度越来越快,需要频繁对驱动器进行固件升级,由于驱动器的固件分为多个模块,逐一升级过程繁琐,重复操作容易出现误操作,使得升级失败。
技术实现要素:3.本发明实现主要涉及一种驱动器固件批量升级的方法,该方法解决了现有驱动器固件升级人工参与度高、过程繁琐、重复操作易出错,且不支持驱动器多模块固件的定向升级的问题,实现了驱动器的多模块固件的批量连续定向升级。
4.根据本发明的第一方面,提供了一种驱动器固件批量升级的方法,包括:
5.与驱动器建立连接;
6.选择与所述驱动器待升级的模块相匹配的固件文件;
7.将所述固件文件发送到所述驱动器,并对所述固件文件进行校验;
8.根据校验结果对所述驱动器的待升级的模块进行升级。
9.作为本发明第一方面的进一步实施例,所述固件文件包括fpga程序、arm的cpu核程序、preloader程序。
10.作为本发明第一方面的进一步实施例,所述选择与所述驱动器待升级的模块相匹配的固件文件包括:
11.选择存储所述固件文件的文件夹,自动分析所述文件夹内与所述驱动器待升级的模块相匹配的至少一个所述固件文件的程序文件作为待升级固件文件的程序文件;
12.和/或直接选择与所述驱动器待升级的模块相匹配的固件文件的程序文件作为所述待升级固件文件的程序文件。
13.作为本发明第一方面的进一步实施例,所述将所述固件文件发送到所述驱动器,并对所述固件文件进行校验包括:
14.发送所述待升级固件文件至所述驱动器的第一存储器。
15.所述驱动器对接收到的所述待升级固件文件进行校验,判断所述待升级固件文件是否与所述驱动器型号一致,
16.若一致,则进一步核验所述待升级固件文件的信息与原固件文件的信息;
17.若不一致,则提示当前所述待升级固件与所述驱动器不匹配,重新选择所述待升级固件文件。
18.作为本发明第一方面的进一步实施例,所述进一步核验所述待升级固件文件的信息与原固件文件的信息包括:
19.备份所述原固件文件至所述第一存储器;
20.比较所述待升级固件文件与所述原固件文件的版本号;
21.若所述待升级固件文件的版本号大于所述原固件文件的版本号,则根据目标升级模块整理所述待升级固件文件;
22.若所述待升级固件文件的版本号等于所述原固件文件的版本号,则保持原固件文件不变;
23.若所述待升级固件文件的版本号小于所述原固件文件的版本号,则提示当前所述待升级固件选择有误,重新选择所述待升级固件文件。
24.作为本发明第一方面的进一步实施例,所述根据校验结果对所述驱动器的待升级的模块进行升级包括:
25.自动连续将所述待升级固件文件的程序文件写入所述驱动器的第二存储器的相应模块并返回校验码;
26.核验所述校验码;
27.若核验通过,则提示当前所述相应模块升级成功,并对下一个模块进行升级,直到最后一个模块升级完成;
28.若核验不通过,将所述第二存储器中所述当前模块的原固件的程序文件进行备份并写入所述第一存储器中。将已备份的所述原固件文件的相应模块所对应的程序文件写入当前模块,然后进行下一模块的升级,直到最后一个模块升级完成。
29.作为本发明第一方面的进一步实施例,所述自动连续将所述待升级固件文件的程序文件写入所述驱动器的第二存储器的相应模块并返回校验码包括:
30.所述待升级固件文件的程序文件逐个写入所述驱动器的第二存储器的相应模块;
31.所述待升级固件文件的多个程序文件并行写入所述驱动器的第二存储器的相应模块。
32.本发明提供的第二方面,提供了一种电子设备,其特征在于,其特征在于,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的方法。
33.本发明提供的第三方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面任一项所述的方法。
34.本发明提供的第四方面,提供了一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如第一方面任一项所述的方法。
35.本发明专利提供了一种驱动器固件批量升级的方法、电子设备、计算机可读存储介质和计算机程序产品,该方法能够自动连续对驱动器各个模块进行固件升级,减少了用户重复操作,提高了固件升级效率。同时能够扫描选中的文件夹,自动为不同的模块匹配升级程序文件,防止用户选择错误。整个过程无需过多的人为参与,自动完成升级,操作简单,极大减少耗时,提升了用户体验。
附图说明
36.通过参照附图详细描述其示例实施例,本发明公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本发明公开的一些实施例,对于本领域的
普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1:本发明实施例一的流程示意图;
38.图2:本发明实施例一的固件升级控制框图;
39.图3:本发明实施例二的固件连续升级实施流程图;
40.图4:本发明实施例二的计算机程序的界面示意图。
具体实施方式
41.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
43.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
44.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
45.下文中,将参考附图详细描述本发明的示例性实施例。在附图中,省略相关已知功能或配置的详细描述,以避免不必要地遮蔽本发明的技术要点。另外,通篇描述中,相同的附图标记始终指代相同的电路、模块或单元,并且为了简洁,省略对相同电路、模块或单元的重复描述。
46.此外,应当理解一个或多个以下方法或其方面可以通过至少一个控制系统、控制单元或控制器执行。术语“控制单元”,“控制器”,“控制模块”或者“主控模块”可以指代包括存储器和处理器的硬件设备,术语“空调”可以指代类似于制冷设备。存储器或者计算机可读存储介质配置成存储程序指令,而处理器具体配置成执行程序指令以执行将在以下进一步描述的一个或更多进程。而且,应当理解,正如本领域普通技术人员将意识到的,以下方法可以通过包括处理器并结合一个或多个其他部件来执行。
47.为进一步阐述本发明中的技术方案,现结合图1、图2和图3,提供了如下具体实施例。
48.根据本发明的一个或多个实施例,本发明实施例提供了一种驱动器固件批量升级的方法,所应用的实际场景包括上位机和驱动器,如图2的固件升级控制框图所述,本方法主要涉及的驱动器中的电子器件包括:第一存储器和第二存储器,优选地,第一存储器为flash闪存芯片,第二存储器为soc芯片。
49.flash闪存芯片当中存储的是驱动器的运行程序,包括fpga程序、arm的cpu核程序,preloader程序等,优选地,arm的cpu为双核cpu时,则arm的cpu核程序为cpu0核程序和cpu1核程序,flash闪存芯片同时也是固件升级文件传输过程中程序文件的存储区域。
50.soc芯片是驱动器运行的核心,包含了fpga和arm,负责读取flash闪存芯片中的程序并运行,在升级过程中会预留一个缓存区用来存储flash中的程序。
51.arm的cpu为双核cpu时,即双核处理器,双核处理器是指在一个处理器上集成两个内核,采用同构多核的架构(系统中的处理核在结构上是相同的,所有的核心或cpu具有相同的构架),它们拥有共同的存储器和外设资源,cpu核程序用来驱动cpu执行逻辑运算、高速缓冲存储器读写、总线的控制。
52.基于上位机和驱动器,对驱动器固件进行批量升级的方法如图1所示,至少可以包含如下s1,s2,s3,s4四个步骤:
53.s1,上位机与驱动器建立连接。
54.s2,上位机选择与驱动器待升级的模块相匹配的固件文件。
55.s3,将固件文件发送到驱动器,并对固件文件进行校验。
56.s4,根据校验结果对驱动器的待升级的模块进行升级。
57.其中:
58.s1,上位机与驱动器建立连接。
59.将准备升级固件的驱动器与上位机相连接,连接方式包括usb数据线、蓝牙和以太网等。
60.若连接成功,则进入下一步处理;否则,持续连接直到连接成功。
61.s2,上位机选择与驱动器待升级的模块相匹配的固件文件。
62.驱动器准备升级的固件文件涉及到fgpa程序、arm的cpu核程序以及preloader程序。
63.在上位机端选择准备升级驱动器的待升级固件文件,将存储有完整待升级固件文件的程序文件的文件夹作为待升级固件文件,或选中存储有待升级固件文件的程序文件作为待升级固件文件。上位机根据驱动器待升级的模块名称,从待升级固件文件中筛选出匹配的程序文件作为升级固件文件。在确定了待升级固件文件之后,将此待升级固件文件发送至驱动器。
64.s3,将固件文件发送到驱动器,并对固件文件进行校验。
65.驱动器接收到上位机发送的待升级固件文件之后,存储在flash闪存芯片中,需要进行校验待升级固件文件是否正确。此校验过程包括s31,s32两个步骤。
66.s31,判断待升级固件文件是否与驱动器型号一致,以确定升级的固件确属于当前驱动器。
67.如果判断结果一致,则说明待升级固件文件包含的目标驱动器参数与当前驱动器参数相吻合,执行下一步的核验。如果判断结果不一致,则提示当前待升级固件文件与当前连接的驱动器不统一,不能够进行升级。需要重新选择待升级固件文件。
68.s32,核验待升级固件文件的信息与原固件文件的信息,即驱动器读取原固件文件的信息,包含版本号、文件名、编码方式、文件格式等文件属性信息。
69.在核验之前先备份原固件文件至flash闪存芯片,以防万一升级出现问题,有能够
正常使用的固件文件作为保障。
70.将读取到的原固件文件的版本号与当前待升级固件文件的版本号相比较。
71.如果待升级固件文件的版本号大于所述原固件文件的版本号,即表明待升级固件文件的版本更加新,可以用此版本替换旧版本的固件文件,这里须先进行整理待升级固件文件,根据驱动器的目标升级模块整理待升级固件文件。即驱动器将核验通过的待升级固件文件根据目标升级模块进行整理,比如,根据目标升级模块名称的先后顺序,将待升级固件文件进行相同的文件次序存储。
72.如果待升级固件文件的版本号等于所述原固件文件的版本号,表明两个固件为同一版本,则无需替换更新,保持原固件文件不变即可;
73.如果待升级固件文件的版本号小于原固件文件的版本号,说明待升级固件文件的版本更为旧,而原固件文件的版本更为新,很明显,这很可能是选择有误造成,所以提示当前待升级固件选择有误,重新选择待升级固件文件进行再次升级。
74.s4,根据校验结果对驱动器的待升级的模块进行升级。
75.驱动器将整理后的待升级固件文件的程序文件自动连续写入驱动器的soc芯片的对应模块,使用crc32校验算法进行校验并返回校验码;
76.然后上位机核验校验码;
77.如果核验通过,说明当前待升级固件文件的程序文件正确的写入了soc芯片的相应模块,将原固件文件进行了更新迭代。则提示当前升级的模块升级成功,同时对下一个模块进行升级,直到最后一个模块升级完成。
78.如果核验不通过,说明当前待升级固件文件的程序文件并没有正确写入soc芯片的相应模块,当前模块升级失败,将已备份的所述原固件文件的相应模块所对应的程序文件写入当前模块,然后进行下一模块的升级,直到最后一个模块升级完成。根据本发明的一个或多个实施例,本发明实施例提供了一种实现实施例一所述方法的计算机程序,本计算机程序运行在上位机,控制驱动器的固件升级。如图4所示,本计算机程序包含连接驱动器按钮,选择升级文件按钮,升级按钮,模块复选框,状态显示栏等组件。如图3固件连续升级实施流程图所示,本计算机程序批量升级驱动器固件的实施流程如下:
79.第一步,在上位机启动本计算机程序,填写待升级驱动器的ip地址和通讯端口,点击连接驱动器按钮将上位机与驱动器连接,若状态显示栏显示“连接成功”,则表明上位机与驱动器已建立正常网络连接。若状态显示栏显示“连接失败”,则表明上位机通过当前填写的ip地址和通讯端口并没有连接到驱动器,需要确认驱动器设备是否正常工作或核对填写信息是否无误。
80.第二步,在上位机与驱动器连接成功后,点击选择升级文件按钮,然后打开存储有完整待升级固件文件的文件夹并选中,此时上位机会分析文件夹内的文件并将符合要求的程序文件作为待升级固件文件;也可通过选择指定的单个或多个待升级固件文件的程序文件。
81.第三步,选择完程序文件后,用户可根据实际需要选择是否对各个模块进行升级,在模块复选框中对待升级的模块的勾选框进行打钩。
82.第四步,点击升级按钮,上位机将逐一对选中的各个模块进行升级。首先判断是否有对应的程序文件和模块是否被勾选进行升级。上位机向驱动器发送程序文件,发送完成
后驱动器对程序文件进行校验,并与上位机的校验码进行比对,一致则提示该模块升级成功,不一致则提示失败。
83.第五步,上位机对下一个模块进行升级,自动重复第四步的操作,直到最后一个模块升级完成。届时升级全部完成。至此上位机对驱动器的固件完成了自动且连续的升级。
84.综上,本领域技术人员容易理解的是,在不冲突的前提下,上述各有利方式可以自由地组合、叠加。以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。