一种BIN文件分块升级的方法技术

技术编号:14337340 阅读:107 留言:0更新日期:2017-01-04 10:35
本发明专利技术公开了一种BIN文件分块升级的方法,使原来只能对BIN文件整体升级的升级方式,转变为可对单独的“块”进行升级,每一块可以很小,小到一个函数。这样将大大的节省BIN文件升级所需的升级文件的大小,从而有效的减少下载量和出错概率。如一个800M的BIN文件,在原有技术中,必须全部下载到本地,即800M比特。但是如果按本方法升级,仅升级一个函数的话,那么仅需要下载并升级几十比特,极大的提高升级效率,减少下载的流量费和升级出错的概率。

【技术实现步骤摘要】
[
]本专利技术涉及编程及文件升级领域,尤其涉及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)处,更改为新的函数指定地址(如GOTO0x900000);S403、更改ROM中新的函数指定地址(如0x900000-0x901000)处,写入需要更改的函数;如果需要升级非函数,则S404、将非函数区域全覆盖,但不变更函数区域。代码举例:在非函数区间调用函数时,采用直接调用,与原有方式相同,如:Helloword();在函数名区间指定地址处,不再编写函数,而是直接以GOTO替代:0x10000:Helloword(){GOTO0x900000;本文档来自技高网...
一种BIN文件分块升级的方法

【技术保护点】
一种BIN文件分块升级的方法,其特征在于,包括:将原有无序的BIN文件分成3个地址区域,包括:1)非函数区域; 2)指定函数名区域;3)指定函数区域,程序按照这3个区域填入对应程序,然后按照对应区域升级,每次升级可单独升级其中一个或几个区域的指定的部分。

【技术特征摘要】
1.一种BIN文件分块升级的方法,其特征在于,包括:将原有无序的BIN文件分成3个地址区域,包括:1)非函数区域;2)指定函数名区域;3)指定函数区域,程序按照这3个区域填入对应程序,然后按照对应区域升级,每次升级可单独升级其中一个或几个区域的指定的部分。2.如权利要求1所述的BIN文件分块升级的方法,其特征在于,所述区域由严格的地址标注、区分。3.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,指定函数名区域仅包含需调用的函数的名称及跳转真实函数存放地址。4.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,指定函数区域包含区域空间大小及函数具体内容。5.如权利要求1所述所述的BIN文件分块升级的方法,其特征在于,非函数区域及除了上述两个区...

【专利技术属性】
技术研发人员:程远树
申请(专利权)人:深圳市阿乐卡科技有限公司
类型:发明
国别省市:广东;44

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

1