CN107704247B - 一种减小多核固件大小的方法 - Google Patents

一种减小多核固件大小的方法 Download PDF

Info

Publication number
CN107704247B
CN107704247B CN201710992649.XA CN201710992649A CN107704247B CN 107704247 B CN107704247 B CN 107704247B CN 201710992649 A CN201710992649 A CN 201710992649A CN 107704247 B CN107704247 B CN 107704247B
Authority
CN
China
Prior art keywords
firmware
core
turning
repeated
repeated section
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.)
Active
Application number
CN201710992649.XA
Other languages
English (en)
Other versions
CN107704247A (zh
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.)
Guangzhou Huiruisitong Technology Co Ltd
Original Assignee
Guangzhou Huiruisitong Information Technology 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 Guangzhou Huiruisitong Information Technology Co Ltd filed Critical Guangzhou Huiruisitong Information Technology Co Ltd
Priority to CN201710992649.XA priority Critical patent/CN107704247B/zh
Publication of CN107704247A publication Critical patent/CN107704247A/zh
Application granted granted Critical
Publication of CN107704247B publication Critical patent/CN107704247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种减小多核固件大小的方法,该方法包括:收集重复段信息步骤,通过分析固件文件的文件结构,解析出单核固件中共享空间的起始地址和长度,确定重复段信息,形成配置文件;生成合并固件步骤,首先在将多个单核固件合并前,优先读取配置信息,获取重复段的起始地址和长度,然后在多核固件合并时,利用配置文件获取重复段的信息,对所有核重复的字段只保留第一个单核固件中此重复段的信息,其他的单核固件中落在此重复段中的数据将被丢弃。本发明方法避免存放重复的样本,减少了合并固件的大小,解决了固件超过Flash大小无法存放的问题,并减少了固件升级时间,且配置文件可以根据代码设计灵活更改,不需要修改固件生成工具。

Description

一种减小多核固件大小的方法
技术领域
本发明涉及嵌入式电子设备技术领域,具体涉及一种减小多核固件大小的方法。
背景技术
在嵌入式设备领域,固件是其重要内容,是嵌入式设备脱离开发仿真环境,可以自己运行的关键。随着多核芯片的普及,多个单核固件合并为单一固件,减少升级次数,提高升级效率被提上日程。而芯片某些启动方式限制了Flash大小的读写范围,就出现了多个单核固件合并后,固件大小超出了Flash空间大小的问题。
现有方法中,有几篇专利对固件修改、固件定制、固件扩展等提供了一些创新方法,专利200910223312.8《固件扩展方法以及固件生成器》,公开了一种固件扩展和固件生成的方法;专利201410005343.7《固件定制化的方法及可定制固件的硬件设备》,公开了一种通过修改预留空间的内容达到定制固件的方法;所有这些专利对如何缩小固件大小,暂时没有任何现有技术提及。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种减小多核固件大小的方法。
本发明的目的可以通过采取如下技术方案达到:
一种减小多核固件大小的方法,所述的方法包括:
收集重复段信息步骤,通过分析固件文件的文件结构,解析出单核固件中共享空间的起始地址和长度,确定重复段信息,形成配置文件;
生成合并固件步骤,首先在将多个单核固件合并前,优先读取配置信息,获取重复段的起始地址和长度,然后在多核固件合并时,利用配置文件获取重复段的信息,对所有单核固件中落入重复段的数据段,只保留第一个单核固件中落入重复段的数据段,其他的单核固件中落入重复段中的数据段将被丢弃。
进一步地,所述的收集重复段信息步骤具体如下:
S101、检查是否还有重复段,若有重复段,转至步骤S102,若无重复段,转至步骤S103;
S102、获取重复段的起始地址和长度,写入配置文件,转至步骤S101;
S103、形成最终配置文件,结束。
进一步地,所述的生成合并固件步骤具体如下:
S201、读取配置文件,获取重复段信息;
S202、判断是否还有单核固件,若有转至步骤S203,否则转至步骤S207;
S203、读取单核固件,判断是否还有数据段,若有数据段转至步骤S204,若没有数据段,转至步骤S202;
S204、读取数据段,分析本段是否落在重复段,若没有落在重复段的,转至步骤S205,若落入重复段的,转至步骤S206;
S205、直接写入合并固件,转至步骤S203;
S206、判断是否位于第一个单核固件,若是则写入合并固件,否则就丢弃,然后转至步骤S203;
S207、合并完毕,得到合并固件,结束。
本发明相对于现有技术具有如下的优点及效果:
本发明通过分析固件文件的文件结构,解析出单核固件中Segment的起始地址和大小,在多核固件合并时,利用配置文件获取重复段的信息,对所有核重复的字段只保留一个样本,避免存放重复的样本,大大减少了合并固件的大小,解决了固件超过Flash大小无法存放的问题,并大大减少了固件升级时间,且配置文件可以根据代码设计灵活更改,不需要修改固件生成工具。
附图说明
图1是收集重复段信息流程图;
图2是合并固件生成流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本发明中将涉及两种固件,本发明约定,合并前的每个核对应的固件称为单核固件;将所有核的固件合并生成的固件,称为合并固件;固件A的大小使用Size(固件A)表示。考虑到在固件合并过程中,需要增加一些状态控制信息,作为区分单核固件的边界;若有N个单核固件合成一个固件,由此得到:
Size(合并固件)=Size(单核固件1)+…+Size(单核固件N)+Size(控制状态信息)≥Size(单核固件1)+…+Size(单核固件N)。
本发明利用同一芯片中多个核在代码设计时会使用到M个共用空间,这些共用空间反映到单核固件中就是M个段,每个段称为一个Segment;这M个Segment在所有单核固件中,存储地址、运行地址、段的大小、段的内容都是完成一致的;根据这一特点,在合并固件中,只保留M个Segment的一个样本就可以了,不需要保留N份,这就减少了(N-1)*(Size(Segment1)+…+Size(SegmentM))空间大小。
本实施例公开的一种减少多核固件大小的方法,首先,确定重复段信息,形成配置文件;然后,合并单核固件,读写重复段信息,确保合并固件中重复段的信息只有一个样本。
确定重复段信息,形成配置文件:根据代码设计过程中,所有核使用若干共享空间,将这些共享空间的起始地址和长度取出来,按照规定的格式,写到重复段信息文件中,形成配置文件,这一配置文件可以根据代码设计灵活更改,不需要修改固件生成工具。
在将多个单核固件合并前,合并程序优先读取配置信息,获取重复段的起始地址和长度,在合并过程中,会判断固件中哪些段会落在这些重复段的空间中,只保留第一个单核固件中这些重复段的信息,其他的单核固件中落在这些空间中的数据将被丢弃。
如图1中所示的收集重复段信息流程图,描述了重复段配置文件的生成过程,具体流程说明如下:
第一步、检查是否还有重复段,若有重复段,转至第二步,若无重复段,转至第三步;
第二步、获取重复段的起始地址和长度,写入配置文件,转至第一步。
第三步、形成最终配置文件,结束。
如图2中所示的合并固件生成流程图,描述了将N个单核固件合并成单个合并固件的流程,具体流程说明如下:
第一步读取配置文件,获取重复段信息;
第二步判断是否还有单核固件,若有转至第三步,否则转至第七步;
第三步读取单核固件,判断是否还有数据段,若有数据段转至第四步;若没有数据段,转至第二步;
第四步读取数据段,分析本段是否落在重复段,若没有落在重复段的,转至第五步,若落入重复段的,转至第六步;
第五步直接写入合并固件,转至第三步;
第六步判断是否位于第一个单核固件,若是则写入合并固件,否则就丢弃,然后转至第三步;
第七步合并完毕,得到合并固件,结束。
综上所述,本实施例通过分析固件文件的文件结构,解析出单核固件中Segment的起始地址和大小,在多核固件合并时,利用配置文件获取重复段的信息,对所有核重复的字段只保留一个样本,避免存放重复的样本,大大减少了合并固件的大小,解决了固件超过Flash大小无法存放的问题,并大大减少了固件升级时间。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (2)

1.一种减小多核固件大小的方法,其特征在于,所述的方法包括:
收集重复段信息步骤,通过分析固件文件的文件结构,解析出单核固件中共享空间的起始地址和长度,确定重复段信息,形成配置文件;
生成合并固件步骤,首先在将多个单核固件合并前,优先读取配置信息,获取重复段的起始地址和长度,然后在多核固件合并时,利用配置文件获取重复段的信息,对所有单核固件中落入重复段的数据段,只保留第一个单核固件中落入重复段的数据段,其他的单核固件中落入重复段中的数据段将被丢弃;
所述的生成合并固件步骤具体如下:
S201、读取配置文件,获取重复段信息;
S202、判断是否还有单核固件,若有转至步骤S203,否则转至步骤S207;
S203、读取单核固件,判断是否还有数据段,若有数据段转至步骤S204,若没有数据段,转至步骤S202;
S204、读取数据段,分析本段是否落在重复段,若没有落在重复段的,转至步骤S205,若落入重复段的,转至步骤S206;
S205、直接写入合并固件,转至步骤S203;
S206、判断是否位于第一个单核固件,若是则写入合并固件,否则就丢弃,然后转至步骤S203;
S207、合并完毕,得到合并固件,结束。
2.根据权利要求1所述的一种减小多核固件大小的方法,其特征在于,所述的收集重复段信息步骤具体如下:
S101、检查是否还有重复段,若有重复段,转至步骤S102,若无重复段,转至步骤S103;
S102、获取重复段的起始地址和长度,写入配置文件,转至步骤S101;
S103、形成最终配置文件,结束。
CN201710992649.XA 2017-10-23 2017-10-23 一种减小多核固件大小的方法 Active CN107704247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710992649.XA CN107704247B (zh) 2017-10-23 2017-10-23 一种减小多核固件大小的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710992649.XA CN107704247B (zh) 2017-10-23 2017-10-23 一种减小多核固件大小的方法

Publications (2)

Publication Number Publication Date
CN107704247A CN107704247A (zh) 2018-02-16
CN107704247B true CN107704247B (zh) 2020-06-05

Family

ID=61181706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710992649.XA Active CN107704247B (zh) 2017-10-23 2017-10-23 一种减小多核固件大小的方法

Country Status (1)

Country Link
CN (1) CN107704247B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113794589B (zh) * 2021-08-31 2023-11-07 新华三技术有限公司成都分公司 一种ac固件的打包方法、ap的升级方法和ac

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425018A (zh) * 2008-12-05 2009-05-06 深圳创维数字技术股份有限公司 基于分段式的嵌入式固件升级方法及装置
CN102135904A (zh) * 2011-03-11 2011-07-27 华为技术有限公司 一种面向多核目标系统的映射方法及装置
CN103914324A (zh) * 2013-01-08 2014-07-09 海尔集团公司 一种自动烧写嵌入式设备固件的方法及其系统
CN104484185A (zh) * 2014-12-30 2015-04-01 深圳市大疆创新科技有限公司 固件生成系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987458B2 (en) * 2006-09-20 2011-07-26 Intel Corporation Method and system for firmware image size reduction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425018A (zh) * 2008-12-05 2009-05-06 深圳创维数字技术股份有限公司 基于分段式的嵌入式固件升级方法及装置
CN102135904A (zh) * 2011-03-11 2011-07-27 华为技术有限公司 一种面向多核目标系统的映射方法及装置
CN103914324A (zh) * 2013-01-08 2014-07-09 海尔集团公司 一种自动烧写嵌入式设备固件的方法及其系统
CN104484185A (zh) * 2014-12-30 2015-04-01 深圳市大疆创新科技有限公司 固件生成系统及方法

Also Published As

Publication number Publication date
CN107704247A (zh) 2018-02-16

Similar Documents

Publication Publication Date Title
CN108052643B (zh) 基于LSM Tree结构的数据存储方法、装置及存储引擎
US7725646B2 (en) Method of using a flash memory for a circular buffer
CN104391725A (zh) 页面展示方法和页面展示装置
CN110727608A (zh) 一种日志数据的存储方法、电子设备及存储介质
CN112835528B (zh) 脏页刷新方法和装置、电子设备和存储介质
CN111241040A (zh) 信息获取方法、装置、电子设备及计算机存储介质
CN112732321A (zh) 一种固件修改方法、装置、计算机可读存储介质和设备
CN107704247B (zh) 一种减小多核固件大小的方法
CN103793468A (zh) 数据存储方法和装置以及数据读取方法和装置
US20080196009A1 (en) Apparatus and method for componentizing legacy system
CN102135943A (zh) 闪存数据的存储、访问方法及装置
CN106649131B (zh) 一种固态硬盘及其逻辑地址范围冲突监控方法、系统
CN112965661A (zh) 数据存储方法、装置、设备及存储介质
CN105117168A (zh) 一种信息处理方法和电子设备
CN106293862B (zh) 一种可扩展标记语言xml数据的解析方法和装置
CN110543463A (zh) 一种日志存储方法、装置、设备及可读存储介质
CN107783904B (zh) 单元测试桩去重方法、装置、计算机可读存储介质及设备
KR100677227B1 (ko) 이동단말기의 갱신속도 개선 방법
CN115577149A (zh) 一种数据处理方法、装置、设备及可读存储介质
CN106598659A (zh) 数据文件的构建方法、更新应用程序的方法及装置
CN110688084B (zh) 一种先入先出的flash数据存储方法、系统及终端
CN105335095A (zh) 闪存文件系统的处理方法及装置
CN111625254B (zh) 文件处理方法、装置、终端及存储介质
EP3291084A1 (en) Java card application package used as a library package
CN109947978B (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 510000 no.2-8, North Street, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou huiruisitong Technology Co.,Ltd.

Address before: 605, No.8, 2nd Street, Ping'an 2nd Road, Xianzhuang, lirendong village, Nancun Town, Panyu District, Guangzhou City, Guangdong Province 511442

Patentee before: GUANGZHOU HUIRUI SITONG INFORMATION TECHNOLOGY Co.,Ltd.

PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20230207

Granted publication date: 20200605

PD01 Discharge of preservation of patent
PD01 Discharge of preservation of patent

Date of cancellation: 20240402

Granted publication date: 20200605