1.本技术涉及固件烧录技术领域,特别涉及烧录固件的方法、固件和电子设备。
背景技术:2.在硬件领域,常常需要用到将固件烧录至对应的产品硬件中。目前防止固件烧录到错误的产品硬件的方法多是在固件烧录过程中对产品型号进行检查,这需要设备已经烧录过产品信息,该产品信息用来标识区分不同产品。但是在产品信息未烧录前,无法使用这个方法进行判断。
3.而一旦将错误固件烧录到设备,其后果则是轻则外设模块不能工作,重则会导致芯片损坏。
技术实现要素:4.本技术提供了烧录固件的方法、固件和电子设备,其能够在产品信息未烧录的状态下,仍然能够确保将固件烧录到正确的设备中,并且防止固件误烧录。
5.在第一方面,提供一种烧录固件的方法。所述方法包括:从待烧录固件的装置读取与所述装置相关联的第一配置信息;将所述第一配置信息和与所述固件相关联的第二配置信息进行比较;以及根据所述比较的结果将所述固件烧录至所述装置中。
6.在一些实施例中,从待烧录固件的装置读取与所述装置相关联的第一配置信息包括:读取与所述装置相关联的硬件识别标识码,所述硬件识别标识码基于对所述装置的输入输出口的状态进行编码而获得,并且将所述第一配置信息和与所述固件相关联的第二配置信息进行比较包括:将所述硬件识别标识码和与所述固件相关联的硬件识别信息进行比较。
7.在一些实施例中,所述输入输出口包括高阻状态、低电平状态或高电平状态。
8.在一些实施例中,所述输入输出口包括一个或多个通用输入输出gpio口。
9.在一些实施例中,从待烧录固件的装置读取与所述装置相关联的第一配置信息包括:读取与所述装置相关联的芯片标识码和硬件识别标识码,并且将所述第一配置信息和与所述固件相关联的第二配置信息进行比较包括:将所述芯片标识码和与所述固件相关联的芯片信息进行比较,以及将所述硬件识别标识码和与所述固件相关联的硬件识别信息进行比较。
10.在一些实施例中,从待烧录固件的装置读取与所述装置相关联的第一配置信息、将所述第一配置信息和与所述固件相关联的第二配置信息进行比较包括:读取与所述装置相关联的芯片标识码,将所述芯片标识码和与所述固件相关联的芯片信息进行比较;若所述芯片标识码和所述芯片信息一致,读取与所述装置相关联的输入输出口状态,并将所述输入输出口状态编码成硬件识别标识码;以及将所述硬件识别标识码和与所述固件相关联的硬件识别信息进行比较。
11.在一些实施例中,所述方法还包括:生成配置文件,所述配置文件包括与所述固件
相关联的芯片信息、硬件识别信息、外设配置信息和电源配置信息中的至少一项;以及将所述配置文件存储至所述固件中。
12.在一些实施例中,所述方法还包括:选取待烧录固件的装置的用于识别的输入输出口,使所述输入输出口保持预设固定输入状态。
13.在一些实施例中,所述方法还包括:判断是否有空闲输入输出口用于使用;以及若无空闲输入输出口用于使用,则对同一输入输出口进行功能复用。
14.在一些实施例中,所述方法还包括:根据所述装置的预设更新次数选取所述装置的输入输出口的个数。
15.在一些实施例中,根据所述比较的结果将所述固件烧录至所述装置中包括:若所述第一配置信息和所述第二配置信息一致,则将所述固件烧录至所述装置中,并且所述方法还包括:若所述第一配置信息和所述第二配置信息不一致,则退出固件烧录。
16.在第二方面,提供一种固件,所述固件上存储有与其待烧录的装置相关联的配置文件,所述配置文件包括硬件识别信息,所述硬件识别信息被设置为与所述装置相关联的硬件识别标识码进行比较,所述硬件识别标识码基于对所述装置的输入输出口的状态进行编码而获得。
17.在第三方面,提供一种电子设备。所述电子设备包括:待烧录固件的装置;以及处理装置,被配置为通过根据上述提及的烧录固件的方法将固件烧录至所述装置中。
18.根据本公开的实施例,因固件自带有第二配置信息,可将读取到的待烧录固件的装置的第一配置信息与自带的第二配置信息进行匹配,如果匹配成功,则烧录固件到对应的装置,装置无需自身事先烧录产品信息的同时也能确保将固件烧录到正确的产品硬件中。
19.进一步地,通过将装置的输入输出口状态编码成硬件识别标识码,该硬件识别码可用于区分产品型号,相较于现有技术中需要额外通过烧录产品信息才能够区分产品型号而言,本方案在硬件上无需额外做改进即可实现设备的产品型号判断。
20.上述发明内容相关记载仅是本技术技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本技术的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本技术的上述目的及其它目的、特征和优点能够更易于理解,以下结合本技术的具体实施方式及附图进行说明。
附图说明
21.附图仅用于示出本技术具体实施方式以及其他相关内容的原理、实现方式、应用、特点以及效果等,并不能认为是对本技术的限制。在附图中:
22.图1是示出根据本公开的实施例的烧录固件的方法的流程图;
23.图2是示出根据本公开的实施例的存储在固件中的配置文件的内容示意图;
24.图3是示出根据本公开的实施例的产品识别码示意图;
25.图4是示出根据本公开的实施例的直接占用gpio口的产品硬件的连接示意图;
26.图5是示出根据本公开的实施例的复用gpio口的产品硬件的连接示意图;
27.图6是示出根据本公开的实施例的固件的模块示意图;
28.图7是示出根据本公开的实施例的电子设备的模块示意图。
具体实施方式
29.为详细说明本技术可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本技术的技术方案,因此只作为示例,而不能以此来限制本技术的保护范围。
30.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本技术中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
31.除非另有定义,本文所使用的技术术语的含义与本技术所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本技术。
32.在本技术的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如a和/或b,表示:存在a,存在b,以及同时存在a和b这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。
33.在本技术中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。
34.在没有更多限制的情况下,在本技术中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
35.在本技术中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本技术实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
36.如上述背景技术中所提及的现有技术在固件烧录过程中,为了确保固件烧录到正确的硬件上,需要事先将产品信息烧录到对应的硬件设备上。而在实际的应用场景中,有很多需要烧录固件的设备是未烧录产品信息的,故此如何在硬件设备未事先烧录产品信息的前提下,却仍然保证将固件烧录到正确的设备上,则成了亟需解决的技术问题。
37.本实施例的核心技术思想在于在固件上事先写入其要对应烧录的正确装置的第二配置信息,而后通过读取待烧录固件的装置的相关第一配置信息,将第一配置信息与第二配置信息进行比较,根据比较结果将固件烧录至对应装置中。
38.进一步地,本技术的另一核心技术思想在于,硬件识别码基于对装置的输入输出口的状态进行编码获得,进而起到不同硬件板间的区别作用。即要求不同产品的硬件板上标识用的输入输出口的编码不同。
39.下文中将参考示例性实施例并且结合附图详细描述根据本公开的实施例的具体
实施方式。
40.图1是示出根据本公开的实施例的防止固件误烧录的方法100的流程图。如图1所示,防止固件误烧录的方法100包括以下步骤s101至步骤s103。
41.在步骤s101,从待烧录固件的装置读取与所述装置相关联的第一配置信息。
42.在步骤s102,将所述第一配置信息和与所述固件相关联的第二配置信息进行比较。
43.在步骤s103,根据所述比较的结果将所述固件烧录至所述装置中。在一些实施例中,若所述第一配置信息和所述第二配置信息一致,则将所述固件烧录至所述装置中。此外,所述方法还包括:若所述第一配置信息和所述第二配置信息不一致,则退出固件烧录。
44.根据本公开的实施例,因固件自带有配置信息,可将读取到的待烧录固件的装置的第一配置信息与自带的第二配置信息进行匹配,如果匹配成功,则烧录固件到对应的设备,设备无需自身事先烧录产品信息的同时也能确保将固件烧录到正确的产品硬件中。
45.以下以不同的实施例分别对步骤s101至步骤s103展开具体说明。
46.在一个实施例中,从待烧录固件的装置读取与所述装置相关联的第一配置信息包括:读取与所述装置相关联的硬件识别标识码,所述硬件识别标识码基于对所述装置的输入输出口的状态进行编码而获得,并且将所述第一配置信息和与所述固件相关联的第二配置信息进行比较包括:将所述硬件识别标识码和与所述固件相关联的硬件识别信息进行比较。
47.所述输入输出口包括高阻状态、低电平状态或高电平状态。在本实施例中输入输出口可以gpio口为例进行说明,其数量可以为一个或多个。如:已被烧录至所述装置中的固件对应的状态为:gpio0a0为高阻状态,gpio0a1为低电平状态,则需要将装置的输入输出口gpio0a0和gpio0a1设置成高阻和低电平状态。
48.通过将装置的输入输出口状态编码成硬件识别标识码,该硬件识别码可用于区分产品型号,相较于现有技术中需要额外通过烧录产品信息才能够区分产品型号而言,本方案在硬件上无需额外做改进即可实现设备的产品型号判断。
49.在其他实施例中,在一些应用场景中因芯片种类繁多,通过输入输出口无法完全区分开所有芯片,则需要引入另一个参数芯片识别码来与硬件识别码进行联合判断,以便区分所有的芯片产品。
50.具体地,从待烧录固件的装置读取与所述装置相关联的第一配置信息包括:读取与所述装置相关联的芯片标识码和硬件识别标识码,并且将所述第一配置信息和与所述固件相关联的第二配置信息进行比较包括:将所述芯片标识码和与所述固件相关联的芯片信息进行比较,以及将所述硬件识别标识码和与所述固件相关联的硬件识别信息进行比较。
51.在其他实施例中,在一些应用场景中因不同芯片可能会使用不同的输入输出口来作为硬件识别标识码,故此需要先匹配芯片标识码后才晓得后续是要读取哪些输入输出口来获取硬件识别码,则需要先进行芯片识别码判断,后再进行硬件识别码判断。
52.具体地,从待烧录固件的装置读取与所述装置相关联的第一配置信息、将所述第一配置信息和与所述固件相关联的第二配置信息进行比较包括:读取与所述装置相关联的芯片标识码,将所述芯片标识码和与所述固件相关联的芯片信息进行比较;若所述芯片标识码和所述芯片信息一致,读取与所述装置相关联的输入输出口状态,并将所述输入输出
口状态编码成硬件识别标识码;以及将所述硬件识别标识码和与所述固件相关联的硬件识别信息进行比较。
53.在本实施例中,会通过选取待烧录固件的装置的用于识别的输入输出口,使所述输入输出口保持预设固定输入状态。其中具体是保持哪种预设固定输入状态,则是根据前期的产品规划来做决定的。如:在规划产品时,定义了第一代产品标识码为01,其指的是gpio0a0为0,即高阻,gpio0a1为1,即低电平,则需要第一代产品的硬件设备需确保输入输出口gpio0a0和gpio0a1处于高阻和低电平状态。
54.以上提及了输入输出口包括高阻状态、低电平状态或高电平状态。则可将这三种不同的状态分别编码为:高阻状态:0,低电平状态:1,高电平状态:2。
55.则若选取两个gpio口,其可编码出九种不同的状态码:00、01、02、10、11、12、20、21、22。九种不同的状态码可用于区别九种不同的产品,或同一种产品的不同代数。
56.通过将设备的输入输出口状态编码成硬件识别标识码,如此在硬件上无需额外做改进即可实现设备的硬件识别标识码的匹配判断。此外,选用gpio的状态检查非常地简单方便,其使得设备端的烧录代码不需要实现额外的器件驱动。现有技术中有通过使用小容量器件如eeprom来存储产品型号的,而这将带来硬件成本的增加、产品型号的写入工作及软件的驱动。
57.在以上实施例中,都需要在固件烧录到对应装置前,会事先通过工具生成配置文件,所述配置文件包括与所述固件相关联的芯片信息、硬件识别信息、外设配置信息和电源配置信息中的至少一项;以及将所述配置文件存储至所述固件中。
58.具体的配置文件内容可如图2所示。在图2中,例如,芯片信息为:chip:3588,board_name:3588_evb5;硬件识别信息为:gpio0a0:1,gpio0a1:1;外设配置信息:pmuio1-supply:vcc3v3_pmu,pmuio2-supply:vcc3v3_pmu;电源配置信息:vccio1-supply:vccio-acodec。
59.以图2的数据作为基础,在一些实施例中,当读取到的硬件识别标识码也是gpio0a0:1,gpio0a1:1时,则将对应固件烧录到装置中。本实施例中,是以硬件识别码与固件相关联的硬件识别信息相同时,才进行固件烧录,在其它实施例中,可以以其它任意规则作为执行固件烧录的前提,比如可以是两者都不同时,进行固件烧录。
60.以图2的数据作为基础,在其他实施例中,当芯片标识码为:chip:3588,board_name:3588_evb5;硬件识别标识码为:gpio0a0:1,gpio0a1:1时,将对应固件烧录到装置中,同样,在其它实施例中,可以以其它任意规则作为执行固件烧录的前提。
61.以图2的数据作为基础,在其他实施例中,会先判断芯片标识码是否为:chip:3588,board_name:3588_evb5,若是的话,则读取与所述装置相关联的输入输出口状态,并将所述输入输出口状态编码成硬件识别标识码,判断该硬件识别码是否为:gpio0a0:1,gpio0a1:1,若是,则将对应固件烧录到装置中,同样,在其它实施例中,可以以其它任意规则作为执行固件烧录的前提。
62.以下以一个产品规划了5代产品升级为例进行说明,因只需要考虑5代的升级,则只需要使用两个gpio口就可以覆盖所有产品的识别。需要说明的是,具体要使用几个gpio口进行编码,则是根据装置的预设更新次数选取所述装置的输入输出口的个数,如:根据产品的规划进行实际操作的,如当一个产品需要规划10代产品升级时,则其需要至少3个gpio
口来参与进行编码。
63.上述例子中5代产品升级的产品识别码如图3所示,图3是示出根据本公开的实施例的产品识别码示意图。在图3中,00代表1代产品,01代表2代产品,02代表3代产品,10代表4代产品,11代表5代产品,具体的编码分别对应第几代产品,可以根据实际的需要进行调整,并不做具体的限定。
64.需要说明的是gpio口的不同状态编码不一定只是对应产品的不同代数,其可根据实际应用场景对应不同对象,其最关键的作用在于可以直接区分不同的硬件板,而这些硬件板可能是不同的产品,也可能是同种产品的不同代数。
65.图4是示出根据本公开的实施例的直接占用gpio口的产品硬件的连接示意图。在一些实施例中,优选地会通过判断是否有空闲输入输出口进行使用,若存在空闲输入输出口可以进行使用,则直接调用可用的空闲输入输出口。
66.图5是示出根据本公开的实施例的复用gpio口的产品硬件的连接示意图。在其它实施例中,若无空闲输入输出口进行使用,则对同一输入输出口进行功能复用。如:当产品使用的芯片空闲gpio口紧张时,可以在硬件板上对这些gpio输入增加开关控制,实现识别功能和io功能的复用。如此既可以做到通过gpio口来识别不同的产品,又可以确保该装置本身的功能不受到影响。
67.图6是示出根据本公开的实施例的固件600的模块示意图。所述固件600上存储有与其待烧录的装置相关联的配置文件,所述配置文件包括硬件识别信息,所述硬件识别信息被设置为与所述装置相关联的硬件识别标识码进行比较,所述硬件识别标识码基于对所述装置的输入输出口的状态进行编码而获得。
68.因该固件600自带有第二配置信息,可将读取到的待烧录固件的装置的第一配置信息与自带的第二配置信息进行匹配,如果匹配成功,则烧录固件600到对应的装置,装置无需自身事先烧录产品信息的同时也能确保将固件600烧录到正确的产品硬件中。
69.图7是示出根据本公开的实施例的电子设备700的模块示意图。所述电子设备700包括待烧录固件的装置702和处理装置701。处理装置701被配置为通过上述所提及的烧录固件的方法将固件烧录到对应的待烧录固件的装置702中。
70.上述电子设备700,因可以通过固件自带有第二配置信息,将读取到的待烧录固件的装置702的第一配置信息与自带的第二配置信息进行匹配,如果匹配成功,则烧录固件到对应的装置,装置无需自身事先烧录产品信息的同时也能确保将固件烧录到正确的产品硬件中。
71.最后需要说明的是,尽管在本技术的说明书文字及附图中已经对上述各实施例进行了描述,但并不能因此限制本技术的专利保护范围。凡是基于本技术的实质理念,利用本技术说明书文字及附图记载的内容所作的等效结构或等效流程替换或修改产生的技术方案,以及直接或间接地将以上实施例的技术方案实施于其他相关的技术领域等,均包括在本技术的专利保护范围之内。