软件标识生成方法、计算机可读存储介质及单片机技术

技术编号:17911996 阅读:26 留言:0更新日期:2018-05-10 18:02
本发明专利技术公开了一种软件标识生成方法、计算机可读存储介质及单片机。所述软件标识生成方法为存储在存储介质中的软件代码生成软件标识;所述软件标识生成方法包括以下步骤:S1、对所述软件代码进行计算以生成校验码;S2、根据所述校验码生成软件标识;不同的软件代码生成不同的校验码。本发明专利技术根据不同的软件代码生成不同的校验码,进而生成不同的软件标识,也即只要软件代码不同,软件标识必不相同。当器件中单片机的应用软件被更改、更新,相应的软件标识也会更改,从而能快速识别单片机的应用软件是否符合用户要求,实现单片机软件版本安全管理。

【技术实现步骤摘要】
软件标识生成方法、计算机可读存储介质及单片机
本专利技术涉及计算机
,特别涉及一种软件标识生成方法、计算机可读存储介质及单片机。
技术介绍
目前,电子设备、智能仪表等器件实现一些功能通常需要安装对应的应用软件。为了便于管理,需要对应用软件进行软件标识,特别是像电能表这类仪表需要执行法制计量机构颁布的相关标准,更加需要对安装于其中的软件进行软件标识,以实现有效管理。现有技术中,软件标识一般是由微处理器软件生成的,用户可更改软件标识,也即存在软件更改或更新而未更改软件标识的情形,不利于器件的管理,存在数据泄露的风险。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术中安装于器件中的软件的软件标识由微处理器软件生成,存在软件更改或更新而未更改软件标识的情形,不利于器件的管理的缺陷,提供一种软件标识生成方法、计算机可读存储介质及单片机。本专利技术是通过下述技术方案来解决上述技术问题:一种软件标识生成方法,所述软件标识生成方法为存储在存储介质中的软件代码生成软件标识;所述软件标识生成方法包括以下步骤:S1、对所述软件代码进行计算以生成校验码;S2、根据所述校验码生成软件标识;不同的软件代码生成不同的校验码。较佳地,所述存储介质包括至少一第一存储单元,所述软件代码存储于所述第一存储单元中;所述存储介质还包括至少一第二存储单元,所述第二存储单元存储有多项式;步骤S1之前,所述软件标识生成方法还包括:设置第二存储单元与第一存储单元的对应关系;步骤S1具体包括:从所述第一存储单元中获取软件代码,从对应的第二存储单元中获取多项式;根据所述多项式对所述软件代码进行计算,生成校验码。较佳地,每个第二存储单元中存储不同的多项式。较佳地,所述存储介质还包括第三存储单元;步骤S2之后,所述软件标识生成方法还包括:将所述校验码和/或软件标识存储于所述第三存储单元中。本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的软件标识生成方法。较佳地,所述计算机可读存储介质为FLASH存储器。本专利技术还提供一种单片机,所述单片机包括上述的计算机可读存储介质。较佳地,所述单片机还包括:控制单元和TR接口;所述控制单元分别与所述计算机可读存储介质和所述TR接口电连接;所述控制单元用于在接收到读取指令时从所述计算机可读存储介质中获取所述软件标识,并通过所述TR接口向外输出所述软件标识。较佳地,所述单片机还包括:并串转换电路;所述控制单元通过所述并串转换电路与所述TR接口电连接;所述并串转换电路用于将所述软件标识转换成串行的bit数据流。本专利技术的积极进步效果在于:本专利技术根据不同的软件代码生成不同的校验码,进而生成不同的软件标识,也即只要软件代码不同,软件标识必不相同。当器件中单片机的应用软件被更改、更新,相应的软件标识也会更改,从而能快速识别单片机的应用软件是否符合用户要求,实现软件版本安全管理。附图说明图1为本专利技术实施例1的软件标识生成方法的流程图。图2为本专利技术实施例3的单片机的模块示意图。具体实施方式下面通过实施例的方式进一步说明本专利技术,但并不因此将本专利技术限制在所述的实施例范围之中。实施例1本实施例的软件标识生成方法为存储在存储介质中的软件代码生成软件标识。存储介质包括至少一个第一存储单元、至少一个第二存储单元、第三存储单元。第一存储单元用于存储软件代码,第二存储单元用于存储多项式。其中,每个第二存储单元中存储的多项式是不同的。如图1所示,软件标识生成方法包括以下步骤:步骤101、设置第二存储单元与第一存储单元的对应关系。步骤102、对软件代码进行计算以生成校验码。其中,不同的软件代码生成不同的校验码。本实施例中,步骤102包括:步骤102-1、从第一存储单元中获取软件代码,从对应的第二存储单元中获取多项式。步骤102-2、根据多项式对软件代码进行计算,生成校验码。具体的,当下载软件代码时,将软件代码依次写入第一存储单元中,同时根据从对应的第二存储单元中获取的多项式,对从该第一存储单元中获取软件代码进行(不带借位)除法求余运算。以下通过一个具体实例说明根据多项式对软件代码进行计算的过程:例如,一个第一存储单元中存储的软件代码为:1010。与该第一存储单元对应的第二存储单元中存储的多项式为:H(x)=x3+x+1。首先,根据变量的指数,将H(x)=x3+x+1转换成对应的二进制数1011;由于多项式有4位,则把软件代码左移3(4-1)位,得到1010000。其次,用多项式的二进制数对左移3位后的软件代码进行模2除,得到余位011,即为校验码。由于每个第一存储单元均会生成一个校验码,软件代码存储于几个第一存储单元中,即可得到几个校验码。需要说明的是,校验码的位数,取决于多项式H(x)的最高次幂。步骤103、根据校验码生成软件标识。若一段软件代码共有i个16BIT的校验码,生成软件标识具体可以是:将这些校验码去掉0XFFFF后的数据流分别对2组第二存储单元中的32次幂的多项式进行不带借位除法运算得到2组32BIT余数,分别作为软件标识中高32BIT数据和低32BIT数据。步骤104、将校验码和/或软件标识存储于第三存储单元中。其中,64BIT的软件标识存储到软件标识存储区域。本实施例中,根据不同的软件代码生成不同的校验码,进而生成不同的软件标识,也即只要软件代码不同,软件标识必不相同。当器件中单片机的应用软件被更改、更新,相应的软件标识也会更改,从而能快速识别单片机的应用软件是否符合用户要求,实现软件版本安全管理。实施例2本实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现实施例1所提供的软件标识生成方法。本实施例中,计算机可读存储介质为FLASH存储器。FLASH存储器的程序存储区一般由M个存储块(也即第一存储单元)组成,每一存储块分若干个页。程序存储区只支持片擦除,不支持块擦除和页擦除。FLASH存储器的NVR区的NVR1(也即第二存储单元)存有一定的长度的数据码K(多项式的二进制数),数据码K中的第n个16BIT数据Kn与M个数据块中的第n个块Mn对应,在写FLASH每个存储块时,FLASH控制器根据对应关系选择相应的多项式计算校验码。其中,NVR1对用户不支持读写功能。写完一个存储块,则计算出一个16BIT的校验码Cn,并将此校验码Cn存储在NVR区的NVR2(也即第三存储单元)中。NVR2对用户有只读功能。下载程序时所需要的存储块都写完后,共有M个16BIT的校验码。将这些校验码去掉0XFFFF后的数据流分别对2组第二存储单元中的32次幂的多项式进行不带借位除法运算得到2组32BIT余数,分别作为软件标识中高32BIT数据和低32BIT数据,并将此软件标识的64BIT数据存储到NVR2中的固定位置。使用本实施例的计算机可读存储介质存储应用程式,只要FLASH存储器中的应用软件被更改、更新,相应的软件标识也会更改,从而能快速识别FLASH存储器的应用软件是否符合用户要求,实现软件版本安全管理。实施例3本实施例提供一种单片机,如图2所示,单片机包括:计算机可读存储介质1、控制单元2和TR接口3。其中,计算机可读存储介质为实施例2所提供的计算机可读存储介质。控本文档来自技高网...
软件标识生成方法、计算机可读存储介质及单片机

【技术保护点】
一种软件标识生成方法,其特征在于,所述软件标识生成方法为存储在存储介质中的软件代码生成软件标识;所述软件标识生成方法包括以下步骤:S1、对所述软件代码进行计算以生成校验码;S2、根据所述校验码生成软件标识;不同的软件代码生成不同的校验码。

【技术特征摘要】
1.一种软件标识生成方法,其特征在于,所述软件标识生成方法为存储在存储介质中的软件代码生成软件标识;所述软件标识生成方法包括以下步骤:S1、对所述软件代码进行计算以生成校验码;S2、根据所述校验码生成软件标识;不同的软件代码生成不同的校验码。2.如权利要求1所述的软件标识生成方法,其特征在于,所述存储介质包括至少一第一存储单元,所述软件代码存储于所述第一存储单元中;所述存储介质还包括至少一第二存储单元,所述第二存储单元存储有多项式;步骤S1之前,所述软件标识生成方法还包括:设置第二存储单元与第一存储单元的对应关系;步骤S1具体包括:从所述第一存储单元中获取软件代码,从对应的第二存储单元中获取多项式;根据所述多项式对所述软件代码进行计算,生成校验码。3.如权利要求2所述的软件标识生成方法,其特征在于,每个第二存储单元中存储不同的多项式。4.如权利要求1所示的软件标识生成方法,其特征在于,所述存储介质还包括第三存储单元;步骤S2之后,...

【专利技术属性】
技术研发人员:石飞费宇航韩明王甲
申请(专利权)人:上海贝岭股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1