CN116204498A - 一种应用于集中器的可执行程序的压缩及执行方法 - Google Patents

一种应用于集中器的可执行程序的压缩及执行方法 Download PDF

Info

Publication number
CN116204498A
CN116204498A CN202211671851.XA CN202211671851A CN116204498A CN 116204498 A CN116204498 A CN 116204498A CN 202211671851 A CN202211671851 A CN 202211671851A CN 116204498 A CN116204498 A CN 116204498A
Authority
CN
China
Prior art keywords
file
namely
executable
compressed
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211671851.XA
Other languages
English (en)
Inventor
赵靖石
吕永东
杨志萌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao iTechene Technologies Co ltd
Original Assignee
Qingdao iTechene Technologies Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qingdao iTechene Technologies Co ltd filed Critical Qingdao iTechene Technologies Co ltd
Priority to CN202211671851.XA priority Critical patent/CN116204498A/zh
Publication of CN116204498A publication Critical patent/CN116204498A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种应用于集中器的可执行程序的压缩及执行方法,步骤1:将应用于集中器的可执行程序,生成压缩的可执行文件,以便可执行文件存储;步骤2:将压缩的可执行文件加载到加载器中,以便原可执行文件执行。本发明的有益效果是:1.可执行文件压缩后,占用空间压缩前减小50‑70%,且不影响正常运行。2.对文件系统和Flash无限制,使用于所有类型的文件系统和Flash芯片。3.运行前的完整性校验,避免因文件损坏导致运行异常。

Description

一种应用于集中器的可执行程序的压缩及执行方法
技术领域
本发明涉及电力设备领域,特别是一种应用于集中器的可执行程序的压缩及执行方法。
背景技术
在电力行业的集中器上,单个APP可执行程序,内存大小通常为2~10M,一个完整终端功能集中器,通常包含至少5个APP, 因此在集中器中,存在存储空间有限、可执行程序过大的问题。
目前为解决这一问题,常用的方法是更换容量更大的存储芯片, 但是该方法的缺点是物料成本较高,不适合大面积推广使用;还有一种方法是采用压缩的文件系统SquashFS, 但该方法又存在如下缺点:1) 文件系统是只读的, 无法对已有文件内容进行修改;2) 无法创建新的文件和删除已有文件。还有一种方法是采用ubifs, 但该方法又存在缺点:只适用于NAND Flash等MTD设备, 无法应用于EMMC等块设备。
发明内容
本发明的目的在于克服以上技术缺陷,提出一种应用于集中器的可执行程序的压缩方法,对可执行程序进行压缩,且不影响正常运行。
本发明为实现其技术目的所采取的技术方案是:一种应用于集中器的可执行程序的压缩及执行方法,包括以下步骤:
步骤1:将应用于集中器的可执行程序,生成压缩的可执行文件,以便可执行文件存储;
步骤2:将压缩的可执行文件加载到加载器中,以便原可执行文件执行。
优选的,将应用于集中器的可执行程序生成压缩的可执行文件时, 包含如下步骤:
S1. 文件类型判断: 判断输入文件是否为合法的集中器可执行文件;(arm LinuxELF)
S2. 数据分块和压缩: 对于合法的可执行文件, 将输入文件分块并分别压缩;
S3. 生成校验信息: 生成压缩后数据块的校验信息;
S4. 生成加载器程序: 将加载器代码编译为可执行文件;
S5. 生成输出文件: 将加载器复制至一份, 作为输出文件;
S6. 追加校验信息: 将校验信息追加至输出文件末尾;
S7. 追加压缩数据块: 记录当前首个数据块的偏移, 并将全部压缩数据块依次追加至输出文件;
S8. 追加数据块结束标识: 将数据块结束标识追加至输出文件;
S9. 追加文件类型标识: 将文件类型标识追加至输出文件;
S10. 追加数据区偏移: 将数据区偏移追加至输出文件;
S11. 输出文件重命名: 将输出文件重命名为指定文件名, 压缩的可执行文件生成完成。
优选的,S8中的数据块结束标识为一个空的压缩数据块;
S9中的文件类型标识为文件魔数,或当前压缩方式版本,或使用的数据压缩算法;
S10中的数据区偏移为S7中记录的当前首个数据块的偏移。
优选的,所述压缩的可执行文件执行时, 包含如下步骤:
S1. 加载器执行: 当压缩的可执行文件执行时,执行头部的加载器, 在加载器执行过程中, 会执行S2-S8步骤;
S2. 获取数据区偏移: 从输入文件末尾获取数据区偏移;
S3. 文件类型标识判断: 从输入文件获取文件类型标识, 判断输入文件的文件魔数是否与要求匹配, 并获取压缩方式版本和使用的数据压缩算法;
S4. 读取压缩数据块: 从数据区偏移开始读取文件, 直到数据块结束标识为止,读出所有的压缩数据块;
S5. 计算压缩数据块校验: 生成读取出的压缩后数据块的校验信息;
S6. 比对数据校验: 从数据区偏移开始, 向前读取32字节校验信息, 并与S5中计算出数据校验比对;
S7. 解压数据块: 将读出的压缩数据块解压到内存里特定地址处;
S8. 跳转执行: 将控制权交给解压出的可执行文件继续执行;
S9. 原可执行文件执行。
优选的,所述压缩的可执行文件,内容格式包括:加载器、校验信息、压缩数据块、数据块结束标识、文件类型标识、数据区偏移。
本发明的有益效果是:
1. 可执行文件压缩后, 占用空间压缩前减小50-70%, 且不影响正常运行。
2. 对文件系统和Flash无限制, 使用于所有类型的文件系统和Flash芯片。
3. 运行前的完整性校验, 避免因文件损坏导致运行异常。
附图说明
图1为可执行文件压缩过程示意图;
图2为压缩的可执行文件执行过程示意图;
图3为压缩的可执行文件内容格式组分图。
具体实施方式
下面结合附图实施例,对本发明做进一步说明。
实施例一
如图1-3所示:
一、压缩的可执行文件内容格式有如下几部分构成:
1. 加载器:可直接执行的汇编代码, 用于解压数据块, 将其还原至内存中, 并在校验完成后, 跳转至还原出的代码执行。
2. 校验信息: 所有数据块的整体校验, 32字节。
3. 压缩数据块: 使用压缩算法分别压缩的数据库, 每个数据块包含该数据长度和压缩的数据内容。
4. 数据块结束标识: 用于判定压缩数据块的结束。
5. 文件类型标识: 用于文件格式的版本控制和压缩的可执行文件可执行文件识别。
6. 数据区偏移: 用于解压时定位压缩数据块的起始位置。
二、生成压缩的可执行文件时, 包含如下步骤:
S1. 文件类型判断: 判断输入文件是否为合法的集中器可执行文件;
S2. 数据分块和压缩: 对于合法的可执行文件, 将输入文件分块并分别压缩;
S3. 生成校验信息: 生成压缩后数据块的校验信息;
S4. 生成加载器程序: 将加载器代码编译为可执行文件;
S5. 生成输出文件: 将加载器复制至一份, 作为输出文件;
S6. 追加校验信息: 将校验信息追加至输出文件末尾;
S7. 追加压缩数据块: 记录当前首个数据块的偏移, 并将全部压缩数据块依次追加至输出文件;
S8. 追加数据块结束标识: 将数据块结束标识(一个空的压缩数据块)追加至输出文件;
S9. 追加文件类型标识: 将文件类型标识(文件魔数、当前压缩方式版本、使用的数据压缩算法)追加至输出文件;
S10. 追加数据区偏移: 将数据区偏移(S7中记录的当前首个数据块的偏移)追加至输出文件;
S11. 输出文件重命名: 将输出文件重命名为指定文件名, 压缩的可执行文件生成完成。
三、压缩的可执行文件执行时, 包含如下步骤:
S1. 加载器执行: 当压缩的可执行文件执行时, 实际上是执行了头部的加载器,在加载器执行过程中, 会执行S2-S8步骤;
S2. 获取数据区偏移: 从输入文件末尾获取数据区偏移;
S3. 文件类型标识判断: 从输入文件获取文件类型标识, 判断输入文件的文件魔数是否与要求匹配, 并获取压缩方式版本和使用的数据压缩算法;
S4. 读取压缩数据块: 从数据区偏移开始读取文件, 直到数据块结束标识为止,读出所有的压缩数据块;
S5. 计算压缩数据块校验: 生成读取出的压缩后数据块的校验信息;
S6. 比对数据校验: 从数据区偏移开始, 向前读取32字节校验信息, 并与S5中计算出数据校验比对;
S7. 解压数据块: 将读出的压缩数据块解压到内存里特定地址处;
S8. 跳转执行: 将控制权交给解压出的可执行文件,即跳转到S7中的内存里的特定地址继续执行;
S9. 原可执行文件执行。
本发明的优点为:
1. 可执行文件压缩, 占用空间压缩前减小50-70%, 且不影响正常运行。
2. 对文件系统和Flash无限制, 使用于所有类型的文件系统和Flash芯片。
3. 运行前的完整性校验, 避免因文件损坏导致运行异常。

Claims (5)

1.一种应用于集中器的可执行程序的压缩及执行方法,其特征在于:包括以下步骤:
步骤1:将应用于集中器的可执行程序,生成压缩的可执行文件,以便可执行文件存储;
步骤2:将压缩的可执行文件加载到加载器中,以便原可执行文件执行。
2.根据权利要求1所述的应用于集中器的可执行程序的压缩及执行方法,其特征在于:将应用于集中器的可执行程序生成压缩的可执行文件时, 包含如下步骤:
S1. 文件类型判断: 判断输入文件是否为合法的集中器可执行文件;(arm LinuxELF)
S2. 数据分块和压缩: 对于合法的可执行文件, 将输入文件分块并分别压缩;
S3. 生成校验信息: 生成压缩后数据块的校验信息;
S4. 生成加载器程序: 将加载器代码编译为可执行文件;
S5. 生成输出文件: 将加载器复制至一份, 作为输出文件;
S6. 追加校验信息: 将校验信息追加至输出文件末尾;
S7. 追加压缩数据块: 记录当前首个数据块的偏移, 并将全部压缩数据块依次追加至输出文件;
S8. 追加数据块结束标识: 将数据块结束标识追加至输出文件;
S9. 追加文件类型标识: 将文件类型标识追加至输出文件;
S10. 追加数据区偏移: 将数据区偏移追加至输出文件;
S11. 输出文件重命名: 将输出文件重命名为指定文件名, 压缩的可执行文件生成完成。
3.根据权利要求2所述的应用于集中器的可执行程序的压缩及执行方法,其特征在于:
S8中的数据块结束标识为一个空的压缩数据块;
S9中的文件类型标识为文件魔数,或当前压缩方式版本,或使用的数据压缩算法;
S10中的数据区偏移为S7中记录的当前首个数据块的偏移。
4.根据权利要求1所述的应用于集中器的可执行程序的压缩及执行方法,其特征在于:
所述压缩的可执行文件执行时, 包含如下步骤:
S1. 加载器执行: 当压缩的可执行文件执行时,执行头部的加载器, 在加载器执行过程中, 会执行S2-S8步骤;
S2. 获取数据区偏移: 从输入文件末尾获取数据区偏移;
S3. 文件类型标识判断: 从输入文件获取文件类型标识, 判断输入文件的文件魔数是否与要求匹配, 并获取压缩方式版本和使用的数据压缩算法;
S4. 读取压缩数据块: 从数据区偏移开始读取文件, 直到数据块结束标识为止, 读出所有的压缩数据块;
S5. 计算压缩数据块校验: 生成读取出的压缩后数据块的校验信息;
S6. 比对数据校验: 从数据区偏移开始, 向前读取32字节校验信息, 并与S5中计算出数据校验比对;
S7. 解压数据块: 将读出的压缩数据块解压到内存里特定地址处;
S8. 跳转执行: 将控制权交给解压出的可执行文件继续执行;
S9. 原可执行文件执行。
5.根据权利要求1所述的应用于集中器的可执行程序的压缩及执行方法,其特征在于:
所述压缩的可执行文件,内容格式包括:加载器、校验信息、压缩数据块、数据块结束标识、文件类型标识、数据区偏移。
CN202211671851.XA 2022-12-26 2022-12-26 一种应用于集中器的可执行程序的压缩及执行方法 Pending CN116204498A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211671851.XA CN116204498A (zh) 2022-12-26 2022-12-26 一种应用于集中器的可执行程序的压缩及执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211671851.XA CN116204498A (zh) 2022-12-26 2022-12-26 一种应用于集中器的可执行程序的压缩及执行方法

Publications (1)

Publication Number Publication Date
CN116204498A true CN116204498A (zh) 2023-06-02

Family

ID=86518238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211671851.XA Pending CN116204498A (zh) 2022-12-26 2022-12-26 一种应用于集中器的可执行程序的压缩及执行方法

Country Status (1)

Country Link
CN (1) CN116204498A (zh)

Similar Documents

Publication Publication Date Title
US20070055969A1 (en) System and method for updating firmware
CN109189405B (zh) 一种验证程序Flash数据一致性的方法及系统
US7454673B2 (en) Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory
TWI459396B (zh) 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置
CN104778060A (zh) 一种嵌入式Linux系统快速安全启动方法
US8595594B2 (en) Data processing method, memory controller, and memory storage device
CN110333993B (zh) 内存快照的生成方法、装置、电子设备和存储介质
CN106293621B (zh) 一种固件升级方法及装置
US7886211B2 (en) Memory controller
CN113721952A (zh) 一种应用于采集终端的嵌入式软件升级方法
CN116204498A (zh) 一种应用于集中器的可执行程序的压缩及执行方法
US11989418B2 (en) Method and apparatus for upgrading SSD firmware compatible with raid SSD and non-raid
CN111831311A (zh) 应用程序升级方法、电子设备及存储介质
CN111290765B (zh) 一种固件快速烧录方法、系统及存储介质
CN110795275A (zh) 基于异常掉电过程中的异常块识别方法和装置
CN102890969B (zh) 数据处理方法、存储器控制器及存储器储存装置
CN111090542A (zh) 基于异常掉电的异常块识别方法、装置及计算机设备
CN114510256B (zh) 固件升级方法、电能表、计算机设备和存储介质
CN112540882A (zh) 闪存设备检测系统及闪存设备检测方法
US7313648B2 (en) Corruption tolerant method and system for deploying and modifying data in flash memory
CN118760483A (zh) 芯片的固件加载方法及装置
EP4145271A1 (en) Methods and terminal for updating converted applet file, and java card device
US10379875B2 (en) Solid state storage device and program loading method thereof
KR102139826B1 (ko) 플래시 메모리 저장장치 저장 장치 및 그 구동 방법
CN115993978A (zh) 一种固件升级方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination