嵌入式系统固件处理方法、装置、设备及存储介质制造方法及图纸

技术编号:34697932 阅读:19 留言:0更新日期:2022-08-27 16:33
本申请提供嵌入式系统固件处理方法、装置、设备及存储介质,涉及计算机技术领域。该方法包括:当嵌入式系统启动时,读取存储在嵌入式系统的闪存中固件的属性信息;根据固件的属性信息,确定固件的二进制文件是否为压缩文件;若是,则基于预设的解压缩函数对固件进行解压,并加载解压后的固件。本方案主要是将预先编译生成的固件压缩后存储到闪存Flash中,使得存储在闪存Flash中的固件采用压缩格式,提高了对闪存Flash的利用率,减少了固件存储时对闪存Flash资源的过多消耗;同时在嵌入式系统启动加载固件过程中,直接调用预设的解压缩函数对压缩后固件进行动态解压缩,提高对压缩后固件的解压处理速度,从而使得嵌入式系统能够快速且安全的启动。能够快速且安全的启动。能够快速且安全的启动。

【技术实现步骤摘要】
嵌入式系统固件处理方法、装置、设备及存储介质


[0001]本申请涉及计算机
,具体而言,涉及一种嵌入式系统固件处理方法、装置、设备及存储介质。

技术介绍

[0002]嵌入式系统(Embedded system)是由硬件和软件协同,能独立进行运行的专用计算机系统。其中,嵌入式系统中的各种系统功能由嵌入式固件控制,嵌入式固件包含引导加载程序、内核文件和文件系统,通常存储在闪存(Flash)中。
[0003]目前,大部分嵌入式系统包含多个功能模块,为了方便对嵌入式系统中各功能模块进行开发以及升级,主要是将嵌入式系统硬件中闪存Flash划分成多个分区,其中,每个分区中存放对应模块的固件,当嵌入式系统启动时,则加载各分区内存储的固件,以启动各分区相对应的功能模块。
[0004]但是,这种采取划分多个分区方式,使得每个分区所占内存大小与其对应模块的代码量相关,随着嵌入式系统开发量增大,导致嵌入式系统中包含的功能模块的代码量也增大,随之也必然增加各分区内存储的固件大小,从而增大闪存Flash的开销,继而限制嵌入式系统运行时对存储的需求。

技术实现思路

[0005]本申请的目的在于,针对上述现有技术中的不足,提供一种嵌入式系统固件处理方法、装置、设备及存储介质,以便减少固件存储时对闪存Flash资源的过多消耗。
[0006]为实现上述目的,本申请实施例采用的技术方案如下:
[0007]第一方面,本申请实施例提供了一种嵌入式系统固件处理方法,所述方法包括:
[0008]当嵌入式系统启动时,读取存储在所述嵌入式系统的闪存中的固件的属性信息;
[0009]根据所述固件的属性信息,确定所述固件的二进制文件是否为压缩文件;
[0010]若是,则基于预设的解压缩函数对所述固件进行解压,并加载解压后的固件。
[0011]可选地,所述基于预设的解压缩函数对固件进行解压,并加载解压后的固件之前,还包括:
[0012]将所述解压缩函数存储至所述嵌入式系统的第一启动模块中。
[0013]可选地,所述基于预设的解压缩函数对所述固件进行解压,并加载解压后的固件,包括:
[0014]配置所述解压缩函数的参数信息,其中,所述参数信息包括:读取函数、拷贝函数;
[0015]调用所述解压缩函数中读取函数,以预设长度字节为单位读取所述固件,并对所述固件进行解压,得到所述解压后的固件;
[0016]调用所述解压缩函数中拷贝函数,将所述解压后的固件拷贝到目标内存地址,以加载所述解压后的固件。
[0017]可选地,所述将所述解压后的固件拷贝到目标内存地址,以加载所述解压后的固
件,包括:
[0018]将所述解压后的固件拷贝到目标内存地址,计算所述解压后的固件的校验值;
[0019]将所述解压后的固件的校验值与所述固件的属性信息中的校验值进行比对,若比对结果一致,则加载所述解压后的固件。
[0020]可选地,所述当嵌入式系统启动时,读取存储在所述嵌入式系统的闪存中的固件的属性信息之前,还包括:
[0021]生成所述固件的二进制文件;
[0022]调用预先编写的压缩脚本代码,对所述固件的二进制文件进行压缩处理,得到压缩后的所述固件;
[0023]生成所述固件的属性信息,所述属性信息包括:所述固件的版本信息、压缩前所述固件的二进制文件大小、压缩前所述固件的校验值、压缩后的所述固件的数据、以及压缩后的所述固件的压缩标识;
[0024]将压缩后的所述固件以及所述固件的属性信息存储至所述闪存中。
[0025]可选地,所述根据所述固件的属性信息,确定所述固件的二进制文件是否为压缩文件,包括:
[0026]读取所述固件的属性信息中预设位的字节信息;
[0027]根据所述预设位的字节信息,判断所述固件的二进制文件为压缩文件。
[0028]可选地,所述根据所述固件的属性信息,确定所述固件的二进制文件是否为压缩文件,包括:
[0029]若否,则按照预先定义的数据格式读取并解析所述固件,并将解析后的固件存储至目标内存地址。
[0030]第二方面,本申请实施例还提供了一种嵌入式系统固件处理装置,所述装置包括:
[0031]读取模块,用于当嵌入式系统启动时,读取存储在所述嵌入式系统的闪存中的固件的属性信息;
[0032]确定模块,用于根据所述固件的属性信息,确定所述固件的二进制文件是否为压缩文件;
[0033]处理模块,用于若是,则基于预设的解压缩函数对所述固件进行解压,并加载解压后的固件。
[0034]可选地,所述装置还包括:
[0035]存储模块,用于将所述解压缩函数存储至所述嵌入式系统的第一启动模块中。
[0036]可选地,所述处理模块,还用于:
[0037]配置所述解压缩函数的参数信息,其中,所述参数信息包括:读取函数、拷贝函数;
[0038]调用所述解压缩函数中读取函数,以预设长度字节为单位读取所述固件,并对所述固件进行解压,得到所述解压后的固件;
[0039]调用所述解压缩函数中拷贝函数,将所述解压后的固件拷贝到目标内存地址,以加载所述解压后的固件。
[0040]可选地,所述处理模块,还用于:
[0041]将所述解压后的固件拷贝到目标内存地址,计算所述解压后的固件的校验值;
[0042]将所述解压后的固件的校验值与所述固件的属性信息中的校验值进行比对,若比
对结果一致,则加载所述解压后的固件。
[0043]可选地,所述装置还包括:
[0044]生成模块,用于生成所述固件的二进制文件;
[0045]压缩模块,用于调用预先编写的压缩脚本代码,对所述固件的二进制文件进行压缩处理,得到压缩后的所述固件;
[0046]所述生成模块,还用于生成所述固件的属性信息,所述属性信息包括:所述固件的版本信息、压缩前所述固件的二进制文件大小、压缩前所述固件的校验值、压缩后的所述固件的数据、以及压缩后的所述固件的压缩标识;
[0047]所述存储模块,还用于将压缩后的所述固件以及所述固件的属性信息存储至所述闪存中。
[0048]可选地,所述确定模块,还用于:
[0049]读取所述固件的属性信息中预设位的字节信息;
[0050]根据所述预设位的字节信息,判断所述固件的二进制文件为压缩文件。
[0051]可选地,所述确定模块,还用于:
[0052]若否,则按照预先定义的数据格式读取并解析所述固件,并将解析后的固件存储至目标内存地址。
[0053]第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当处理单元设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面提供的所述方法的步骤。
[0054]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式系统固件处理方法,其特征在于,所述方法包括:当嵌入式系统启动时,读取存储在所述嵌入式系统的闪存中的固件的属性信息;根据所述固件的属性信息,确定所述固件的二进制文件是否为压缩文件;若是,则基于预设的解压缩函数对所述固件进行解压,并加载解压后的固件。2.根据权利要求1所述的方法,其特征在于,所述基于预设的解压缩函数对固件进行解压,并加载解压后的固件之前,还包括:将所述解压缩函数存储至所述嵌入式系统的第一启动模块中。3.根据权利要求2所述的方法,其特征在于,所述基于预设的解压缩函数对所述固件进行解压,并加载解压后的固件,包括:配置所述解压缩函数的参数信息,其中,所述参数信息包括:读取函数、拷贝函数;调用所述解压缩函数中读取函数,以预设长度字节为单位读取所述固件,并对所述固件进行解压,得到所述解压后的固件;调用所述解压缩函数中拷贝函数,将所述解压后的固件拷贝到目标内存地址,以加载所述解压后的固件。4.根据权利要求3所述的方法,其特征在于,所述将所述解压后的固件拷贝到目标内存地址,以加载所述解压后的固件,包括:将所述解压后的固件拷贝到目标内存地址,计算所述解压后的固件的校验值;将所述解压后的固件的校验值与所述固件的属性信息中的校验值进行比对,若比对结果一致,则加载所述解压后的固件。5.根据权利要求1所述的方法,其特征在于,所述当嵌入式系统启动时,读取存储在所述嵌入式系统的闪存中的固件的属性信息之前,还包括:生成所述固件的二进制文件;调用预先编写的压缩脚本代码,对所述固件的二进制文件进行压缩处理,得到压缩后的所述固件;生成所述固件的属性信息,所述属性信息包括:所述固件的版本信息、压缩前...

【专利技术属性】
技术研发人员:仁冬华朱凌王娜
申请(专利权)人:南京大鱼半导体有限公司
类型:发明
国别省市:

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

1