一种智能锁固件升级方法及系统技术方案

技术编号:36604352 阅读:19 留言:0更新日期:2023-02-04 18:24
本发明专利技术公开了一种智能锁固件升级方法及系统,该方法包括:利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段;利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件形成完整固件作为烧录的固件;根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固件,将升级请求中的新版本代码覆盖原可升级部分的代码。本发明专利技术提供的智能锁固件升级方法及系统可以有效降低代码存储空间,同时减少原有大量的升级时间,避免造成智能锁功耗浪费。避免造成智能锁功耗浪费。避免造成智能锁功耗浪费。

【技术实现步骤摘要】
一种智能锁固件升级方法及系统


[0001]本专利技术涉及智能锁
,具体涉及一种智能锁固件升级方法及系统。

技术介绍

[0002]现有的智能锁升级方案采用bootloader+app的方案,在bootloader和app中存在相同功能的代码段,造成存储浪费,每次固件升级均更新整个app,而其中大量功能均为改变,并不需要升级,使得升级时间较长,同时造成智能锁功耗浪费。

技术实现思路

[0003]有鉴于此,本专利技术实施例提供了一种智能锁固件升级方法,以克服现有的智能锁升级方案存在的缺陷。
[0004]为达到上述目的,本专利技术提供如下技术方案:
[0005]本专利技术实施例提供了一种智能锁固件升级方法,包括:
[0006]利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段;
[0007]利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件,形成完整固件作为烧录的固件;
[0008]根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固件,将升级请求中的新版本代码覆盖原可升级部分的代码。
[0009]可选的,所述代码分段工具包括:功能函数_attribute__((section("name"))),“name"为相应代码段的属性名称。
[0010]可选的,所述固定部分包括:启动代码段、库函数代码段、通用算法代码段。
[0011]可选的,所述可升级部分包括:业务代码段和可更新算法代码段。
[0012]可选的,根据可升级代码块的属性和/或升级频率,将可升级部分中的各个代码段进行标识。
[0013]可选的,根据更新需求通过与智能锁关联的应用终端触发智能锁进入升级模式,以无线方式将附有升级固件包的升级请求发送至智能锁。
[0014]可选的,所述升级固件包附有升级类型标识,将该标识与可升级部分中各个代码段的标识进行匹配,将匹配成功的升级固件包覆盖对应的可升级代码段,重启之后运行更新后的代码逻辑。
[0015]本专利技术实施例还提供了一种智能锁固件升级系统,包括:
[0016]代码块分类模块,用于利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段;
[0017]固件合并模块,用于利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件,形成完整固件作为烧录的固件;
[0018]升级模块,用于根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固
件,将升级请求中的新版本代码覆盖原可升级部分的代码。
[0019]本专利技术实施例还提供了一种电子设备,包括:
[0020]存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本专利技术实施例提供的智能锁固件升级方法。
[0021]本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本专利技术实施例提供的智能锁固件升级方法。
[0022]本专利技术技术方案,具有如下优点:
[0023]本专利技术提供了一种智能锁固件升级方法及系统,首先利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段;然后利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件形成完整固件作为烧录的固件;最后根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固件,将升级请求中的新版本代码覆盖原可升级部分的代码。本专利技术提供的方法可以有效降低代码存储空间,同时减少原有大量的升级时间,避免造成智能锁功耗浪费。
附图说明
[0024]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本专利技术实施例中的智能锁固件升级方法的流程图;
[0026]图2为现有方案以bootloader+app的方式构建代码固件和本专利技术实施例中的构建代码固件的方式的示意图;
[0027]图3为本专利技术实施例中的智能锁固件升级系统的结构示意图;
[0028]图4为本专利技术实施例中的电子设备的结构示意图。
具体实施方式
[0029]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0030]根据本专利技术实施例,提供了一种智能锁固件升级方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0031]在本实施例中提供了一种智能锁固件升级方法,如图1所示,该智能锁固件升级方法包括如下步骤:
[0032]步骤S1:利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类
成相应属性的代码段。
[0033]本专利技术实施例在智能锁的程序开发过程中,通过功能函数__attribute__((section("name")))提取各个代码块的属性,"name"为相应代码段的属性名称,根据实际代码块的属性类型进行设置,由此可将代码分成相应属性的代码段,程序编译后可形成各个代码段相应的固件。
[0034]步骤S2:利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件形成完整固件作为烧录的固件。
[0035]如图2所示,现有的bootloader+app的方式构建代码固件,两部分包含了大量重复的内容,造成存储空间的浪费,本专利技术实施例通过将不同属性的代码段分成固定部分和可升级部分可以有效降低代码存储空间的使用。本专利技术实施例中的链接文件类似以下形式:
[0036][0037][0038][0039]其中,第1

3行定义了固定部分和可升级部分的空间大小;第4

10行定义了固定部分存储位置与顺序,第7行定义了驱动部分,第8行定义了通用算法部分;第11

16行定义了固定部分运行时空间分布;第17

23行定义了可升级部分在存储时和运行时的分布,第19行定义了业务部分代码的存储位置。
[0040]实际应用中的固定部分包括:启动代码段、库函数代码段、通用算法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能锁固件升级方法,其特征在于,包括:利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段;利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件,形成完整固件作为烧录的固件;根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固件,将升级请求中的新版本代码覆盖原可升级部分的代码。2.根据权利要求1所述的智能锁固件升级方法,其特征在于,所述代码分段工具包括:功能函数_attribute__((section("name"))),“name"为相应代码段的属性名称。3.根据权利要求1所述的智能锁固件升级方法,其特征在于,所述固定部分包括:启动代码段、库函数代码段、通用算法代码段。4.根据权利要求1所述的智能锁固件升级方法,其特征在于,所述可升级部分包括:业务代码段和可更新算法代码段。5.根据权利要求1所述的智能锁固件升级方法,其特征在于,根据可升级代码块的属性和/或升级频率,将可升级部分中的各个代码段进行标识。6.根据权利要求5所述的智能锁固件升级方法,其特征在于,根据更新需求通过与智能锁关联的应用终端触发智能锁进入升级模式,以无线方式将附有升级固件包的升级请求发送至智能锁。7...

【专利技术属性】
技术研发人员:戴希谦祝志凌董启广黄兴主余开军王少华
申请(专利权)人:德施曼机电中国有限公司
类型:发明
国别省市:

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

1