一种智能锁固件升级方法及系统与流程

文档序号:33188162发布日期:2023-02-04 07:21阅读:105来源:国知局
一种智能锁固件升级方法及系统与流程

1.本发明涉及智能锁技术领域,具体涉及一种智能锁固件升级方法及系统。


背景技术:

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


技术实现要素:

3.有鉴于此,本发明实施例提供了一种智能锁固件升级方法,以克服现有的智能锁升级方案存在的缺陷。
4.为达到上述目的,本发明提供如下技术方案:
5.本发明实施例提供了一种智能锁固件升级方法,包括:
6.利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段;
7.利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件,形成完整固件作为烧录的固件;
8.根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固件,将升级请求中的新版本代码覆盖原可升级部分的代码。
9.可选的,所述代码分段工具包括:功能函数_attribute__((section("name"))),“name"为相应代码段的属性名称。
10.可选的,所述固定部分包括:启动代码段、库函数代码段、通用算法代码段。
11.可选的,所述可升级部分包括:业务代码段和可更新算法代码段。
12.可选的,根据可升级代码块的属性和/或升级频率,将可升级部分中的各个代码段进行标识。
13.可选的,根据更新需求通过与智能锁关联的应用终端触发智能锁进入升级模式,以无线方式将附有升级固件包的升级请求发送至智能锁。
14.可选的,所述升级固件包附有升级类型标识,将该标识与可升级部分中各个代码段的标识进行匹配,将匹配成功的升级固件包覆盖对应的可升级代码段,重启之后运行更新后的代码逻辑。
15.本发明实施例还提供了一种智能锁固件升级系统,包括:
16.代码块分类模块,用于利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段;
17.固件合并模块,用于利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件,形成完整固件作为烧录的固件;
18.升级模块,用于根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固
件,将升级请求中的新版本代码覆盖原可升级部分的代码。
19.本发明实施例还提供了一种电子设备,包括:
20.存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明实施例提供的智能锁固件升级方法。
21.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本发明实施例提供的智能锁固件升级方法。
22.本发明技术方案,具有如下优点:
23.本发明提供了一种智能锁固件升级方法及系统,首先利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段;然后利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件形成完整固件作为烧录的固件;最后根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固件,将升级请求中的新版本代码覆盖原可升级部分的代码。本发明提供的方法可以有效降低代码存储空间,同时减少原有大量的升级时间,避免造成智能锁功耗浪费。
附图说明
24.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1为本发明实施例中的智能锁固件升级方法的流程图;
26.图2为现有方案以bootloader+app的方式构建代码固件和本发明实施例中的构建代码固件的方式的示意图;
27.图3为本发明实施例中的智能锁固件升级系统的结构示意图;
28.图4为本发明实施例中的电子设备的结构示意图。
具体实施方式
29.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.根据本发明实施例,提供了一种智能锁固件升级方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
31.在本实施例中提供了一种智能锁固件升级方法,如图1所示,该智能锁固件升级方法包括如下步骤:
32.步骤s1:利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类
成相应属性的代码段。
33.本发明实施例在智能锁的程序开发过程中,通过功能函数__attribute__((section("name")))提取各个代码块的属性,"name"为相应代码段的属性名称,根据实际代码块的属性类型进行设置,由此可将代码分成相应属性的代码段,程序编译后可形成各个代码段相应的固件。
34.步骤s2:利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件形成完整固件作为烧录的固件。
35.如图2所示,现有的bootloader+app的方式构建代码固件,两部分包含了大量重复的内容,造成存储空间的浪费,本发明实施例通过将不同属性的代码段分成固定部分和可升级部分可以有效降低代码存储空间的使用。本发明实施例中的链接文件类似以下形式:
36.37.[0038][0039]
其中,第1-3行定义了固定部分和可升级部分的空间大小;第4-10行定义了固定部分存储位置与顺序,第7行定义了驱动部分,第8行定义了通用算法部分;第11-16行定义了固定部分运行时空间分布;第17-23行定义了可升级部分在存储时和运行时的分布,第19行定义了业务部分代码的存储位置。
[0040]
实际应用中的固定部分包括:启动代码段、库函数代码段、通用算法代码段,例如压缩算法等属于业界成熟的代码,在各款智能锁中均是一致的,不需要升级;可升级部分包括:业务代码段和可更新算法代码段,例如需要变更智能锁的用户菜单,或者更换语音播报的内容,以及改变录入用户数量等,这些都属于业务代码,需要根据产品需求进行更新。可更新算法代码段包括加密算法、人脸或指纹识别等智能算法的更新升级等,仅作为举例,不以此为限。
[0041]
步骤s3:根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固件,将升级请求中的新版本代码覆盖原可升级部分的代码。
[0042]
本发明实施例根据可升级代码块的属性和/或升级频率,将可升级部分中的各个代码段进行标识,根据更新需求通过app触发智能锁进入升级模式,以无线方式将附有升级固件包的升级请求发送至智能锁,升级固件包附有升级类型标识,将该标识与可升级部分中各个代码段的标识进行匹配,将匹配成功的升级固件包覆盖对应的可升级代码段,重启之后运行更新后的代码逻辑。例如智能锁标准变更,要求调整某些情况下智能锁禁用时间,此时部分代码属于业务部分代码,分配在可升级部分。因此在更新完此部分代码后生成相应的升级固件包,通过无线方式分发至智能锁,智能锁根据固件包中代码段标识,覆盖相应部分,实现智能锁升级满足新的标准。
[0043]
实际中业务代码段等可升级的代码在完整代码固件中的占比一般都在50%以下,本发明实施例提供的升级方法,可以有效降低代码存储空间的使用,同时减少大量的升级时间。
[0044]
在本实施例中还提供了一种智能锁固件升级系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0045]
本实施例提供一种智能锁固件升级系统,如图3所示,包括:
[0046]
代码块分类模块1,用于利用代码分段工具提取智能锁固件中的各个代码块的属性,将代码分类成相应属性的代码段,详细内容参见上述方法实施例中步骤s1的相关描述,在此不再进行赘述。
[0047]
固件合并模块2,用于利用链接文件将不同属性的代码段分成固定部分和可升级部分,并按照链接文件的位置合并所有生产的固件,形成完整固件作为烧录的固件,详细内容参见上述方法实施例中步骤s2的相关描述,在此不再进行赘述。
[0048]
升级模块3,用于根据远程智能锁固件升级请求,获取智能锁可升级部分的代码固件,将升级请求中的新版本代码覆盖原可升级部分的代码,详细内容参见上述方法实施例中步骤s3的相关描述,在此不再进行赘述。
[0049]
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0050]
根据本发明实施例还提供了一种电子设备,如图4所示,该电子设备可以包括处理器901和存储器902,其中处理器901和存储器902可以通过总线或者其他方式连接,图4中以通过总线连接为例。
[0051]
处理器901可以为中央处理器(central processing unit,cpu)。处理器901还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0052]
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
[0053]
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0054]
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
[0055]
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0056]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0057]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1