CN106293784A - 一种bin文件分块升级的方法 - Google Patents
一种bin文件分块升级的方法 Download PDFInfo
- Publication number
- CN106293784A CN106293784A CN201510255228.XA CN201510255228A CN106293784A CN 106293784 A CN106293784 A CN 106293784A CN 201510255228 A CN201510255228 A CN 201510255228A CN 106293784 A CN106293784 A CN 106293784A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- function
- bin file
- file block
- region
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种BIN文件分块升级的方法,使原来只能对BIN文件整体升级的升级方式,转变为可对单独的“块”进行升级,每一块可以很小,小到一个函数。这样将大大的节省BIN文件升级所需的升级文件的大小,从而有效的减少下载量和出错概率。如一个800M的BIN文件,在原有技术中,必须全部下载到本地,即800M比特。但是如果按本方法升级,仅升级一个函数的话,那么仅需要下载并升级几十比特,极大的提高升级效率,减少下载的流量费和升级出错的概率。
Description
[技术领域]
本发明涉及编程及文件升级领域,尤其涉及BIN文件的升级方法。
[背景技术]
BIN文件是二进制文件,目前基本上所有的电子程控设备都是用BIN文件作为程序储存的方法。随着程序功能的强大及复杂化,BIN文件越来越大,目前一个手机的升级BIN文件已经达到了几百兆,目前如果要升级手机程序,必须要整个升级,即下载一个全新的BIN文件,覆盖原有的BIN文件,这样即使在WIFI网络下,也需要10-30分钟,下载量巨大,如何解决让BIN文件升级部分变小,让升级所需下载的资源变小,是我们需要讨论的问题。
[发明内容]
针对上述问题,本发明提供了一种BIN文件分块升级的方法。
具体技术方案如下: 一种BIN文件分块升级的方法,包括:在编程时,将所有可能变动的函数的函数名固化在ROM的储存空间中,称为桥文件即:1)将函数名以汇编格式编写,每个函数一块固定的储存空间;2)指定函数名空间,仅包含GOTO语句强制跳转到指定的函数储存空间;3)函数储存空间包含储存空间的大小及真正的函数内容。
与上述方法对应,在BIN文件升级时,包括以下处理:如果升级函数所需空间小于已分配的函数储存空间,则找到函数名对应的指定的储存空间,将之修改。
如果升级函数所需空间大于已分配的函数储存空间,找到对应的函数名空间,将GOTO语句强制跳转到新的指定的函数储存空间,在新的函数名指定储存空间,写入升级函数。
升级非函数:将非函数指定空间外的空间进行全覆盖,节省函数空间。
本发明在升级BIN文件时,对占总程序20%(一般化假设)的非函数空间采用覆盖式升级,对占总程序80%的函数进行定点升级,有效的节省的BIN文件的下载量,对一个200M的文件,不再需要200M的下载即全覆盖,而只是下载一个几十K的函数或者40M的非函数程序,即可完成升级,大大节省了升级下载量。
[附图说明]
图1是本发明在一优选实施例中的方法流程图。
[具体实施方式]
为了使本发明的目的、技术方案和优点更加清晰,下面结合附图和实施方式作进一步地详细描述。
实施例
1
如图1,一种BIN文件分块升级的方法,包括:S100、写函数时:在ROM函数名指定地址(如0x10000)写入函数A1,GOTO 函数指定地址(如0x11000);S200、在函数指定地址(如0x11000-0x11050)处写入真实A1函数;S300、在程序中正常调用A1。
需要说明的是:此时A1的所有部分全部有了明确的地址,不再是原BIN文件的无序化排列。
S400 在升级时:如果需要升级函数,且升级函数大小小于函数指定地址的空间(如小于0x50)则S401、更改ROM中函数指定地址(0x11000-0x11050)处,写入需要更改的函数;如果需要升级函数,且升级函数大小大于函数指定地址的空间(如大于0x50)则S402、更改ROM中函数名指定地址(0x10000)处,更改为新的函数指定地址(如GOTO 0x900000);S403、更改ROM中新的函数指定地址(如0x900000-0x901000)处,写入需要更改的函数;如果需要升级非函数,则S404、将非函数区域全覆盖,但不变更函数区域。
代码举例:在非函数区间调用函数时,采用直接调用,与原有方式相同,如:Helloword();在函数名区间指定地址处,不再编写函数,而是直接以GOTO替代:
0x10000:
Helloword()
{
GOTO 0x900000;
}
在函数地址处,写入真是的函数
0x10000:
{
Display(“Helloword”);
}
后续如果需要升级,只需要在对应的地址进行修改即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定,任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (10)
1.一种BIN文件分块升级的方法,其特征在于,包括:
将原有无序的BIN文件分成3个地址区域,包括:1)非函数区域; 2)指定函数名区域;3)指定函数区域,程序按照这3个区域填入对应程序,然后按照对应区域升级,每次升级可单独升级其中一个或几个区域的指定的部分。
2.如权利要求1所述的BIN文件分块升级的方法,其特征在于,所述区域由严格的地址标注、区分。
3.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,指定函数名区域仅包含需调用的函数的名称及跳转真实函数存放地址。
4.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,指定函数区域包含区域空间大小及函数具体内容。
5.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,非函数区域及除了上述两个区域外的程序存放区域。
6.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,程序按预先按上述2、3、4、5格式完成程序编写。
7.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,可单独升级一个函数。
8.如权利要求7所述所述的BIN文件分块升级的方法,其特征在于,如果所需空间小于已分配的函数储存空间,在函数空间找到该函数指定的储存空间对应的地址,将之修改。
9.如权利要求7所述所述的BIN文件分块升级的方法,其特征在于,如果所需空间大于已分配的函数储存空间,在函数空间名空间找到该函数名,指定新的储存空间,在新的储存空间写入函数。
10.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,可单独升级非函数:将非函数指定空间外的代码空间进行全覆盖。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510255228.XA CN106293784A (zh) | 2015-05-19 | 2015-05-19 | 一种bin文件分块升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510255228.XA CN106293784A (zh) | 2015-05-19 | 2015-05-19 | 一种bin文件分块升级的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106293784A true CN106293784A (zh) | 2017-01-04 |
Family
ID=57632362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510255228.XA Pending CN106293784A (zh) | 2015-05-19 | 2015-05-19 | 一种bin文件分块升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293784A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015817A (zh) * | 2017-05-25 | 2017-08-04 | 孙文现 | 一种设备固件空中升级的方法 |
CN109445823A (zh) * | 2018-11-02 | 2019-03-08 | 长虹美菱股份有限公司 | 一种mcu固件快速升级方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151708A (en) * | 1997-12-19 | 2000-11-21 | Microsoft Corporation | Determining program update availability via set intersection over a sub-optical pathway |
CN1397884A (zh) * | 2002-07-03 | 2003-02-19 | 无敌科技(西安)有限公司 | 可令电子装置升级的方法 |
US6629315B1 (en) * | 2000-08-10 | 2003-09-30 | International Business Machines Corporation | Method, computer program product, and system for dynamically refreshing software modules within an actively running computer system |
CN1801089A (zh) * | 2005-01-05 | 2006-07-12 | 明基电通股份有限公司 | 电子装置及其程序更新方法 |
CN101539885A (zh) * | 2009-04-23 | 2009-09-23 | 大唐微电子技术有限公司 | 一种无线通信模块软件自主空中升级的方法、装置及系统 |
CN102880494A (zh) * | 2012-09-26 | 2013-01-16 | 浙江大学 | 一种用于微小卫星系统的局部代码更新方法及其系统 |
-
2015
- 2015-05-19 CN CN201510255228.XA patent/CN106293784A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151708A (en) * | 1997-12-19 | 2000-11-21 | Microsoft Corporation | Determining program update availability via set intersection over a sub-optical pathway |
US6629315B1 (en) * | 2000-08-10 | 2003-09-30 | International Business Machines Corporation | Method, computer program product, and system for dynamically refreshing software modules within an actively running computer system |
CN1397884A (zh) * | 2002-07-03 | 2003-02-19 | 无敌科技(西安)有限公司 | 可令电子装置升级的方法 |
CN1801089A (zh) * | 2005-01-05 | 2006-07-12 | 明基电通股份有限公司 | 电子装置及其程序更新方法 |
CN101539885A (zh) * | 2009-04-23 | 2009-09-23 | 大唐微电子技术有限公司 | 一种无线通信模块软件自主空中升级的方法、装置及系统 |
CN102880494A (zh) * | 2012-09-26 | 2013-01-16 | 浙江大学 | 一种用于微小卫星系统的局部代码更新方法及其系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015817A (zh) * | 2017-05-25 | 2017-08-04 | 孙文现 | 一种设备固件空中升级的方法 |
CN109445823A (zh) * | 2018-11-02 | 2019-03-08 | 长虹美菱股份有限公司 | 一种mcu固件快速升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506219A (zh) | 一种基于Android系统的通用版本升级方法 | |
CN103699408A (zh) | 一种软件升级的方法和设备 | |
CN106648716A (zh) | 一种增量更新方法、服务器及智能卡 | |
CN105204927A (zh) | 用于终端设备的应用排列装置及应用排列方法 | |
CN100561384C (zh) | 控制系统组态的增量式在线下载方法 | |
CN102520948A (zh) | 应用程序维护更新方法和装置 | |
CN105335187A (zh) | 一种应用的处理方法及装置 | |
CN105487909B (zh) | 一种减少电力设备固件升级量的方法 | |
CN105159718A (zh) | 固件升级方法及装置 | |
CN102023867A (zh) | 一种终端二次开发装置及二次开发平台构建方法 | |
CN104077161A (zh) | 一种客户端应用的升级方法及装置 | |
CN104216751A (zh) | 一种应用程序的功能组件界面资源的加载方法及系统 | |
CN107463405A (zh) | 一种应用程序的更新方法及装置 | |
CN104572207A (zh) | 一种基于智能配件的app扩展使用方法及智能配件 | |
CN1878366A (zh) | 移动电话的固件升级方法 | |
CN106293784A (zh) | 一种bin文件分块升级的方法 | |
CN105653351A (zh) | java卡虚拟机的优化方法及系统 | |
CN108255735A (zh) | 关联环境测试方法、电子装置及计算机可读存储介质 | |
CN101453511B (zh) | 一种手机平台ui界面自适应的方法 | |
CN108037933A (zh) | 一种房产服务应用程序中城市服务的配置方法及系统 | |
CN103500099A (zh) | 一种通过扩展点和扩展实现软件快速二次开发的方法 | |
CN100375029C (zh) | 存储器配置系统与方法 | |
CN104239110B (zh) | 减少ota增量包大小的方法与装置 | |
CN105100117A (zh) | 一种用于访问组合服务的方法及装置 | |
CN103365672A (zh) | 一种处理应用程序的描述信息的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170104 |