固件定制化的方法及可定制固件的硬件设备的制造方法

文档序号:8445392阅读:309来源:国知局
固件定制化的方法及可定制固件的硬件设备的制造方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种固件定制化的方法及可定制固件的硬件设备。
【背景技术】
[0002]固件程序(Firmware),即固件,是固化在硬件中的软件程序,一般由硬件开发商提供,在硬件设备出厂前下载到硬件中,与硬件紧密结合,完善硬件功能。
[0003]为了适应不同用户的需求,硬件开发商一般需要定制不同的固件程序,下载到硬件中。现有技术中,定制固件程序需要修改固件程序的源代码,并重新编译。当定制的次数增多时,修改和维护多个源代码的工作变得繁琐且容易出错。

【发明内容】

[0004]本发明所要解决的技术问题是,提供一种固件定制化的方法及可定制固件的硬件设备,避免了每次定制固件都需要重新编译固件,在产品维护方面具有很好的实用性。
[0005]为了解决上述技术问题,本发明提供了一种固件定制化的方法,包括以下步骤:
[0006]S1:确定待编译生成的固件中的可定制化信息;
[0007]S2:编译生成固件作为定制的模版,在所述定制的模板中的指定位置处存储所述可定制化信息;
[0008]S3:接收用户输入的定制信息;
[0009]S4:用所述定制信息修改所述指定位置处的可定制化信息后,生成定制的固件。
[0010]作为优选,可定制化信息包括固件中的预定代码和/或数据。
[0011]作为优选,所述步骤S2中,编译生成的所述固件的格式是自定义的。
[0012]作为优选,所述指定位置为文件中的指定偏移量,或者为内存中的指定地址。
[0013]本发明还提供了一种可定制固件的硬件设备,所述设备配置为具有如上所述的定制的模板,从而能够通过直接对所述指定位置处存储的所述可定制化信息进行修改/替换以实现固件定制。
[0014]与现有技术相比,本发明的固件定制化的方法及可定制固件的硬件设备的有益效果在于:实现了一次编译固件,根据不同的用户输入,可以生成多种具有不同特征的固件,避免了每次定制固件都需要重新编译固件,在产品维护方面具有很好的实用性。
【附图说明】
[0015]图1为本发明的实施例的固件定制化的方法的流程示意图;
[0016]图2为本发明的一个实施例的固件定制化的方法的流程示意图;
[0017]图3为本发明的实施例的可定制固件的硬件设备的结构示意图。
【具体实施方式】
[0018]下面结合附图和具体实施例对本发明的实施例的函数级软件保护方法作进一步详细描述,但不作为对本发明的限定。
[0019]图1为本发明的实施例的固件定制化的方法的流程示意图。如图1所示,本发明的实施例的固件定制化的方法,包括以下步骤:
[0020]S1:确定待编译生成的固件中的可定制化信息;
[0021]S2:编译生成固件作为定制的模版,在定制的模板中的指定位置处存储可定制化信息;
[0022]S3:接收用户输入的定制信息;
[0023]S4:用定制信息修改指定位置处的可定制化信息后,生成定制的固件。
[0024]本发明的实施例的函数级软件保护方法实现了一次编译固件,生成定制的模板,根据不同的用户输入,可以生成多种具有不同特征的固件,避免了每次定制固件都需要重新编译固件,在产品维护方面具有很好的实用性。
[0025]作为一种改进,步骤SI中可定制化信息包括固件中的预定代码和/或数据。并且优选地,编译采用编译固件程序的编译器,均支持将代码、数据定位在指定位置的功能。其中,生成的固件的格式可以是自定义的。本发明的一个实施方式,生成的固件格式可以为.bin的二进制文件。
[0026]作为更进一步的改进,指定位置为文件中的指定偏移量,或者为内存中的指定地址。
[0027]图2为本发明的一个实施例的固件定制化的方法的流程示意图。以下通过一个【具体实施方式】对本发明的固件定制化的方法进行进一步说明。
[0028]本实施例中,硬件设备可以为信息安全设备,如加密锁;USB设备。可定制化信息可以为USB设备的厂商描述、产品描述、序列号等信息。
[0029]1、确定固件中可定制化的信息为USB设备的厂商描述、产品描述、序列号。
[0030]2、使用编译器编译固件,将步骤I厂商描述、产品描述、序列号,固定在特定的位置。例如,使用的编译器可以使Keil C51编译器,在程序源码中使用at关键字可以实现:
[0031]例如:
[0032]char code VendorDesc[32]atOxlOOO;
[0033]此代码将厂商描述VendorDesc固定在地址0x1000的位置。
[0034]char code ProductDesc[32]atOxl100;
[0035]此代码将产品描述ProductDesc固定在地址0x1100的位置。
[0036]char code SerialNumber[32]at0xl200;
[0037]此代码将序列号SerialNumber固定在地址0x1200的位置。
[0038]编译后,生成固件模版文件,本例中为二进制文件,如:firmware, bin。
[0039]3、用户输入定制化信息,包含要定制的厂商描述、产品描述、序列号。例如:厂商描述指定为A,产品描述为B,序列号为1000001。
[0040]4、根据步骤3中的定制化信息,直接修改步骤2中生成的二进制文件firmware,bin。将文件偏移量为0x1000的位置,修改为指定的厂商描述A ;将文件偏移量为0x1100的位置,修改为指定的产品描述B ;将文件偏移量为0x1200的位置,修改为指定的序列号1000001。将定制生成的固件下载到硬件中完成硬件功能的定制。
[0041]本实施例通过直接修改固件二进制文件实现了设备厂商描述、产品描述、序列号,避免了每次定制固件都需要重新编译固件,在产品维护方面具有很好的实用性。
[0042]图3为本发明的实施例的可定制固件的硬件设备的结构示意图。本发明还提供了一种可定制固件的硬件设备,设备配置为具有如上所述的定制的模板,从而能够通过直接对指定位置处存储的可定制化信息进行修改/替换以实现固件定制。
[0043]本发明的固件定制化的方法及可定制固件的硬件设备的有益效果在于:实现了一次编译固件,根据不同的用户输入,可以生成多种具有不同特征的固件,避免了每次定制固件都需要重新编译固件,在产品维护方面具有很好的实用性。
[0044]以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
【主权项】
1.一种固件定制化的方法,其特征在于,包括以下步骤: S1:确定待编译生成的固件中的可定制化信息; S2:编译生成固件作为定制的模版,在所述定制的模板中的指定位置处存储所述可定制化信息; 53:接收用户输入的定制信息; 54:用所述定制信息修改所述指定位置处的可定制化信息后,生成定制的固件。
2.根据权利要求1所述的固件定制化的方法,其特征在于,所述可定制化信息包括固件中的预定代码和/或数据。
3.根据权利要求1所述的固件定制化的方法,其特征在于,在所述步骤S2中,编译生成的所述固件的格式是自定义的。
4.根据权利要求1所述的固件定制化的方法,其特征在于,所述指定位置为文件中的指定偏移量,或者为内存中的指定地址。
5.一种可定制固件的硬件设备,其特征在于,所述设备配置为具有如权利要求1至4中任一项中所述的定制的模板,从而能够通过直接对所述指定位置处存储的所述可定制化信息进行修改/替换以实现固件定制。
【专利摘要】本发明公开了一种固件定制化的方法,包括以下步骤:S1:确定待编译生成的固件中的可定制化信息;S2:编译生成固件作为定制的模版,在所述定制的模板中的指定位置处存储所述可定制化信息;S3:接收用户输入的定制信息;S4:用所述定制信息修改所述指定位置处的可定制化信息后,生成定制的固件。本发明还公开了一种可定制固件的硬件设备,配置为具有如上所述模板,通过直接对所述模板中指定位置存储的可定制化信息进行修改/替换以定制固件。本发明的一种固件定制化的方法及可定制固件的硬件设备,避免了每次定制固件都需要重新编译固件,在产品维护方面具有很好的实用性。
【IPC分类】G06F9-44
【公开号】CN104765593
【申请号】CN201410005343
【发明人】孙吉平, 韩勇
【申请人】北京深思数盾科技有限公司
【公开日】2015年7月8日
【申请日】2014年1月6日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1