CN101515967B - 一种终端固件空中下载装置及方法 - Google Patents

一种终端固件空中下载装置及方法 Download PDF

Info

Publication number
CN101515967B
CN101515967B CN200910106148A CN200910106148A CN101515967B CN 101515967 B CN101515967 B CN 101515967B CN 200910106148 A CN200910106148 A CN 200910106148A CN 200910106148 A CN200910106148 A CN 200910106148A CN 101515967 B CN101515967 B CN 101515967B
Authority
CN
China
Prior art keywords
packet
flash
terminal
download
write
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
CN200910106148A
Other languages
English (en)
Other versions
CN101515967A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN200910106148A priority Critical patent/CN101515967B/zh
Publication of CN101515967A publication Critical patent/CN101515967A/zh
Application granted granted Critical
Publication of CN101515967B publication Critical patent/CN101515967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种终端固件空中下载装置及方法,该装置包括固件升级服务器、升级包分解模块和循环判断模块。该方法是升级包分解模块将升级包按照Flash定义的块操作大小分成若干个独立的数据包,并对每个数据包进行标记,同时将每个数据包与其需要在终端中的Flash区写入的地址建立对应关系,然后将所有数据包上传至固件升级服务器;终端从固件升级服务器下载数据包到其RAM区,由循环判断模块循环判断RAM区中是否有数据包下载完成,如果有,则将下载完成的数据包写入相应的Flash地址;如果没有,则继续下载,直到所有数据包都写入Flash中。本发明可多线程并行处理,可以改善目前已经出现的FOTA技术的不足,并更好的提高下载速度。

Description

一种终端固件空中下载装置及方法
技术领域
本发明属于移动终端软件下载领域,具体涉及一种终端固件空中下载(Fireware over theair,FOTA)的装置及方法。
背景技术
闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为128KB到20MB。闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。另一方面,闪存不像RAM(随机存取存储器)一样以字节为单位改写数据,因此不能取代RAM。闪存在断电时仍能保存数据,被广泛用于终端中的存储设备。
固件空中下载是对存放在无线终端内部闪存存储器(flash)上的固件进行远程无线升级的一种技术,利用这种技术,可以自动探测,修改无线终端缺陷,对固件在无线状态下进行升级,目前该技术已经得到了多家移动通信公司和终端制造企业的广泛采用。由于闪存价格的不断下降,终端中使用的闪存容量也在快速增加,使得FOTA升级花费在擦写flash上的时间越来越长。冗长的升级时间给用户带来很大不便,这也成为FOTA技术应用的一大障碍。
目前的无线终端固件升级方法的处理方式是终端从升级服务器上下载升级软件包,将其保存在设备闪存中,系统进程检测到升级标志置位,效验升级软件包文件,开始升级过程。通用的下载方式是终端得到有服务器下达的升级信息后,启动下载过程,终端通过网络从服务器将升级软件包整个下载到本地。在此又大致可以分两种情况,一种是先下载到RAM,全部下载完毕后再写入Flash中;另一种方法是直接写入Flash中。
上述的下载方法中,第一种方法是全部下载到RAM后再按块写入Flash中,这样减少了对Flash擦写的次数,但这一过程中一旦断电会导致RAM中数据丢失和下载失败,另外该方法在写Flash前需要等待全部的软件升级包全部下载完成,在下载软件包到本地的过程中并无写Flash的操作,该方法耗时较大;第二种方法是在下载过程中不断的去擦写Flash,由于读写Flash不能按字节的大小去擦写,只能按照Flash块大小(如128K)来擦写,即下载完成小于一个块大小的数据有可能需要对整个块进行多次的擦写操作,这种方法效率较低。
发明内容
本发明的目的在于克服现有技术的不足,提供一种终端固件空中下载装置及方法。本发明灵活运用网络传输的特点,并结合Flash器件擦写的特点,同时利用RAM器件的配合,可多线程并行处理,可以改善目前已经出现的FOTA技术的不足,并更好的提高下载速度。
为实现上述目的,本发明通过以下技术方案实现:
一种终端固件空中下载装置,包括固件升级服务器,还包括:
升级包分解模块,用于将升级包按照Flash定义的块操作大小分成若干个独立的数据包,并对每个数据包进行标记,将每个数据包与其需要在终端中的Flash区写入的地址建立对应关系,以及将所有数据包上传至所述固件升级服务器;
循环判断模块,用于循环判断从固件升级服务器下载且存储在终端RAM区的数据包是否有下载完成,并将下载完成的数据包写入相应的Flash地址。
上述装置中,标记后的数据包包括一个包头信息,该包头信息用来记录每个数据包的编号、大小、校验码等信息。
上述装置中,所述终端从固件升级服务器下载数据包到其RAM区,并循环判断RAM区中是否有数据包下载完成,如果没有,则继续下载;如果有,则终端提取数据包的包头信息,根据包头信息的校验码判断下载到的数据包是否正常。
上述装置中,如果所述下载到的数据包正常,则提取数据包的编号信息以及数据包要写入Flash区的地址,将数据包去除包头信息后写入Flash区中;如果不正常,则丢弃。
为实现上述目的,本发明还可以通过以下技术方案实现:
一种终端固件空中下载方法,包括如下步骤:
将升级包按照Flash定义的块操作大小分成若干个独立的数据包,并对每个数据包进行标记,同时将每个数据包与其需要在终端中的Flash区写入的地址建立对应关系,然后将所有数据包上传至固件升级服务器;
终端从固件升级服务器下载数据包到其RAM区,并循环判断RAM区中是否有数据包下载完成,如果有,则将下载完成的数据包写入相应的Flash地址;如果没有,则继续下载,直到所有数据包都写入Flash中。
上述方法中,对每个数据包进行标记时,是在每个数据包上加一个包头信息,该包头信息用来记录每个数据包的编号、大小、校验码等信息。
上述方法中,终端从固件升级服务器下载数据包到其RAM区,并循环判断RAM区中是否有数据包下载完成,如果没有,则继续下载;如果有,则终端提取数据包的包头信息,根据包头信息的校验码判断下载到的数据包是否正常。
上述方法中,如果所述下载到的数据包正常,则提取数据包的编号信息以及数据包要写入Flash区的地址,将数据包去除包头信息后写入Flash区中;如果不正常,则丢弃。
上述方法中,如果所述写入不成功,则返回并根据数据包的编号信息以及数据包要写入Flash区的地址重新写入;如果写入成功,则记录数据包的编号,并判断是否所有的数据包全部写入Flash区,如果还有数据包没写入,则继续写入,直到写入完成。
本发明与现有技术相比具有以下有益效果:
本发明灵活运用网络传输的特点,并结合Flash器件擦写的特点,同时利用RAM器件的配合,可多线程并行处理,可以改善目前已经出现的FOTA技术的不足,并更好的提高下载速度。
附图说明
图1是本发明实施例终端固件空中下载装置的示意图;
图2是本发明实施例升级包分解示意图;
图3是本发明实施例终端固件空中下载流程图。
具体实施方式
为了更好地理解本发明,下面结合附图和具体实施例对本发明作进一步地描述。
请参阅图1,本发明终端固件空中下载装置包括固件升级服务器、升级包分解模块和循环判断模块。升级包分解模块用于将升级包按照Flash定义的块操作大小分成N个独立的数据包(N为自然数),并对每个数据包进行标记,将每个数据包与其需要在终端中的Flash区写入的地址建立对应关系,以及将所有数据包上传至固件升级服务器。循环判断模块用于循环判断从固件升级服务器下载且存储在终端RAM区的数据包是否有下载完成,并将下载完成的数据包写入相应的Flash地址。上述标记后的数据包包括一个包头信息,该包头信息用来记录每个数据包的编号、大小、校验码等信息。
请参阅图2,升级包制作出来以后,通过升级包分解模块将升级包按照终端Flash一个块的大小(在本例中规定一个块大小为128K字节)进行分解。假设分解前的升级包对应的需要写入Flash的地址范围是0XA00000~0XA70000,一共448K字节大小,那么分解后对应的升级包为:数据包1,对应Flash区的地址是0XA00000~0XA20000;数据包2,对应Flash区的地址是0XA20000~0XA40000;数据包3,对应Flash区的地址是0XA40000~0XA60000;数据包4,对应Flash区的地址是0XA60000~0XA70000。此外,还需要在每个数据包上加一个包头信息,该包头信息用来记录包的编号、包大小、校验码等信息,所有工作完成后就可以将分解好的数据包上传至固件升级服务器。
当终端从固件升级服务器下载数据包到其RAM区后,循环判断RAM区中是否有数据包下载完成,如果没有,则继续下载;如果有,则终端提取数据包的包头信息,根据包头信息的校验码判断下载到的数据包是否正常,如果正常,则提取数据包的编号信息以及数据包要写入Flash区的地址,将数据包去除包头信息后写入Flash区中;如果不正常,则丢弃。
本发明终端固件空中下载(FOTA)方法,具体步骤如下:
先将升级包按照Flash定义的块操作大小分成若干个(本实施例为四个)独立的数据包,并对每个数据包进行标记,同时将每个数据包与其需要在终端中的Flash区写入的地址建立对应关系,然后将所有数据包上传至固件升级服务器;对每个数据包进行标记时,是在每个数据包上加一个包头信息,该包头信息用来记录每个数据包的编号、大小、校验码等信息;
然后终端从固件升级服务器下载数据包到其RAM区,并循环判断RAM区中是否有数据包下载完成,如果有,则将下载完成的数据包写入相应的Flash地址;如果没有,则继续下载,直到所有数据包都写入Flash中。具体为:1)、终端从固件升级服务器下载数据包到其RAM区,并循环判断RAM区中是否有数据包下载完成,如果没有,则继续下载;如果有,则终端提取数据包的包头信息,根据包头信息的校验码判断下载到的数据包是否正常,如果正常,则提取数据包的编号信息,进入步骤2);如果不正常,则丢弃;2)、终端根据数据包的编号信息以及数据包要写入Flash区的地址,将数据包去除包头信息后写入Flash区中;3)、如果写入不成功,则返回并根据数据包的编号信息以及数据包要写入Flash区的地址重新写入;如果写入成功,则记录数据包的编号,并判断是否所有的数据包全部写入Flash区,如果还有数据包没写入,则继续写入,直到写入完成。
请参阅图3,假定对需要进行写入操作的Flash区已经进行了相应的擦除操作。FOTA任务开始后,终端开始从固件升级服务器下载数据包,数据包首先下载到终端中的RAM区,终端通过循环判断模块设定计时器,循环判断是否有数据包已经下载完成,之后终端一旦发现有数据包下载完成(在此假设数据包2此时下载完成),终端就会提取数据包的包头信息,根据包头信息的校验码等信息判断下载到的数据包是否正常,同时提取出数据包的编号等信息,然后终端启动写Flash程序,根据数据包的编号信息以及数据包要写入Flash区的地址,将数据包2去除包头信息后写入Flash区中的地址0XA20000~0XA40000中,如果写入不成功则返回并重新启动写Flash程序;如果写入成功,则记录成功写入Flash的包号,并判断是否所有的数据包全部写入Flash,如果还有数据包没写入,那么程序转至判断是否有新的数据包下载完成,如果有,则继续写入;如果终端判断全部数据包已经写入Flash,则退出FOTA任务,至此FOTA任务结束。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,应当指出,对于本领域的普通技术人员来说,凡是本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种终端固件空中下载装置,包括固件升级服务器,其特征在于,还包括:
升级包分解模块,用于将升级包按照Flash定义的块操作大小分成若干个独立的数据包,并通过在每个数据包上加一个包头信息的方式对每个数据包进行标记,将每个数据包与其需要在终端中的Flash区写入的地址建立对应关系,以及将所有数据包上传至所述固件升级服务器;
循环判断模块,用于循环判断从固件升级服务器下载且存储在终端RAM区的数据包是否有下载完成,并将下载完成的数据包写入相应的Flash地址。
2.根据权利要求1所述的终端固件空中下载装置,其特征在于,标记后的数据包包括一个包头信息,该包头信息用来记录每个数据包的编号、大小、校验码信息。
3.根据权利要求2所述的终端固件空中下载装置,其特征在于,所述终端从固件升级服务器下载数据包到其RAM区,并循环判断RAM区中是否有数据包下载完成,如果没有,则继续下载;如果有,则终端提取数据包的包头信息,根据包头信息的校验码判断下载到的数据包是否正常,如果正常,则提取数据包的编号信息以及数据包要写入Flash区的地址,将数据包去除包头信息后写入Flash区中;如果不正常,则丢弃。
4.一种终端固件空中下载方法,其特征在于,包括如下步骤:
将升级包按照Flash定义的块操作大小分成若干个独立的数据包,并通过在每个数据包上加一个包头信息的方式对每个数据包进行标记,同时将每个数据包与其需要在终端中的Flash区写入的地址建立对应关系,然后将所有数据包上传至固件升级服务器;
终端从固件升级服务器下载数据包到其RAM区,并循环判断RAM区中是否有数据包下载完成,如果有,则将下载完成的数据包写入相应的Flash地址;如果没有,则继续下载,直到所有数据包都写入Flash中。
5.根据权利要求4所述的终端固件空中下载方法,其特征在于,所述包头信息用来记录每个数据包的编号、大小、校验码信息。
6.根据权利要求5所述的终端固件空中下载方法,其特征在于,终端从固件升级服务器下载数据包到其RAM区,并循环判断RAM区中是否有数据包下载完成,如果没有,则继续下载;如果有,则终端提取数据包的包头信息,根据包头信息的校验码判断下载到的数据包是否正常,如果正常,则提取数据包的编号信息以及数据包要写入Flash区的地址,将数据包去除包头信息后写入Flash区中;如果不正常,则丢弃。
7.根据权利要求6所述的终端固件空中下载方法,其特征在于,如果所述写入不成功,则返回并根据数据包的编号信息以及数据包要写入Flash区的地址重新写入;如果写入成功,则记录数据包的编号,并判断是否所有的数据包全部写入Flash区,如果还有数据包没写入,则继续写入,直到写入完成。
CN200910106148A 2009-03-18 2009-03-18 一种终端固件空中下载装置及方法 Active CN101515967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910106148A CN101515967B (zh) 2009-03-18 2009-03-18 一种终端固件空中下载装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910106148A CN101515967B (zh) 2009-03-18 2009-03-18 一种终端固件空中下载装置及方法

Publications (2)

Publication Number Publication Date
CN101515967A CN101515967A (zh) 2009-08-26
CN101515967B true CN101515967B (zh) 2012-10-10

Family

ID=41040254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910106148A Active CN101515967B (zh) 2009-03-18 2009-03-18 一种终端固件空中下载装置及方法

Country Status (1)

Country Link
CN (1) CN101515967B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062790A (zh) * 2018-07-19 2018-12-21 北京首汽智行科技有限公司 车载终端蓝牙固件的升级测试方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930375A (zh) * 2010-08-26 2010-12-29 深圳市共进电子有限公司 单用户光网络单元中内存空间自适应的程序数据升级方法
CN102591670A (zh) * 2011-01-12 2012-07-18 鸿富锦精密工业(深圳)有限公司 固件升级系统及方法
CN103167348B (zh) * 2011-12-13 2017-03-08 深圳长城开发科技股份有限公司 机顶盒软件空中升级数据下载的方法
CN102662688B (zh) * 2012-03-12 2015-09-23 深圳开立生物医疗科技股份有限公司 一种Nor flash更新方法及装置
CN102693283B (zh) * 2012-05-07 2015-10-28 深圳市共进电子股份有限公司 一种嵌入式系统的数据分区存储方法及系统引导启动方法
CN102685248B (zh) * 2012-05-29 2016-01-27 银联商务有限公司 一种数据下载方法与系统
CN103118198B (zh) * 2013-02-05 2016-04-13 惠州Tcl移动通信有限公司 移动终端的固件升级方法及系统
CN103533534B (zh) * 2013-10-15 2017-02-01 厦门亿联网络技术股份有限公司 一种dect手机的固件无线升级方法
CN103677911A (zh) * 2013-12-06 2014-03-26 上海寰创通信科技股份有限公司 一种移动网络设备固件升级系统及升级方法
CN103713929B (zh) * 2013-12-31 2018-11-13 南京新奕天科技有限公司 基于片上Flash嵌入式系统的远程更新方法
CN104320430A (zh) * 2014-09-24 2015-01-28 广州三晶电气有限公司 一种光伏并网逆变器的远程升级系统及其方法
CN104506931B (zh) * 2015-01-08 2017-11-17 大唐微电子技术有限公司 一种支持cam卡在线升级的方法及系统
CN104965796A (zh) * 2015-05-06 2015-10-07 深圳市金立通信设备有限公司 一种终端
CN104965671A (zh) * 2015-05-06 2015-10-07 深圳市金立通信设备有限公司 一种数据处理方法
CN105912340A (zh) * 2016-04-26 2016-08-31 江苏惠通集团有限责任公司 一种主设备、遥控器及对其空中升级的方法
CN106020905B (zh) * 2016-05-31 2021-01-26 阿里云计算有限公司 一种微控制器固件开发与更新的方法及系统
CN107844305A (zh) * 2016-09-20 2018-03-27 芯讯通无线科技(上海)有限公司 嵌入式设备的软件升级方法及嵌入式设备
US10489136B2 (en) * 2017-04-27 2019-11-26 Quanta Computer Inc. Automatic firmware and custom setting provision for server device
CN109298879A (zh) * 2017-07-25 2019-02-01 深圳市中兴微电子技术有限公司 一种高效物联网fota升级的方法
CN107957880A (zh) * 2017-11-30 2018-04-24 广东美的暖通设备有限公司 空调固件升级方法、装置、空调和计算机设备
CN108920962B (zh) * 2018-06-26 2020-06-26 百富计算机技术(深圳)有限公司 固件下载验签方法、固件发布方法、移动终端及服务器
CN109002312A (zh) * 2018-09-10 2018-12-14 京信通信系统(中国)有限公司 软件升级方法、装置及升级服务器和设备
CN111857770A (zh) * 2020-06-29 2020-10-30 科华恒盛股份有限公司 一种并机系统的同步升级方法
CN112540729A (zh) * 2020-12-11 2021-03-23 捷德(中国)科技有限公司 数据下载的方法、装置、智能卡及存储介质
CN113495735A (zh) * 2021-06-30 2021-10-12 东风商用车有限公司 升级包安装方法、装置、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716216A (zh) * 2004-07-01 2006-01-04 乐金电子(中国)研究开发中心有限公司 移动通讯终端的软件存储方法
CN101184301A (zh) * 2007-12-14 2008-05-21 中兴通讯股份有限公司 移动终端远程固件升级方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716216A (zh) * 2004-07-01 2006-01-04 乐金电子(中国)研究开发中心有限公司 移动通讯终端的软件存储方法
CN101184301A (zh) * 2007-12-14 2008-05-21 中兴通讯股份有限公司 移动终端远程固件升级方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062790A (zh) * 2018-07-19 2018-12-21 北京首汽智行科技有限公司 车载终端蓝牙固件的升级测试方法
CN109062790B (zh) * 2018-07-19 2022-04-05 北京首汽智行科技有限公司 车载终端蓝牙固件的升级测试方法

Also Published As

Publication number Publication date
CN101515967A (zh) 2009-08-26

Similar Documents

Publication Publication Date Title
CN101515967B (zh) 一种终端固件空中下载装置及方法
CN102012831B (zh) 基于Linux平台的OTA升级方法
US9747298B2 (en) Inline garbage collection for log-structured file systems
US8954649B2 (en) Garbage collection in storage devices based on flash memories
CN102096639B (zh) 用于修剪在非易失性闪速介质上的数据的方法
CN1293466C (zh) 用于更新存储卡上固件的系统内编程的实现
CN1658171B (zh) 通过控制频繁受访问扇区对非易失性存储器的更快写操作
CN101477491B (zh) 一种统计函数运行状态的方法和装置
WO2008084291A2 (en) Memory device performance enhancement through pre-erase mechanism
CN103227812A (zh) 智能设备中支持断点续传的下载方法和装置
CN102567054B (zh) 双塔放大器的控制方法及相应的装置
US20060200502A1 (en) Differential data creating device and method, updated data recovery device and method, and program
CN1687899A (zh) 将应用程序动态下载到用户识别模块的方法、系统及模块
US7533374B2 (en) Adaptively storing system code in non-volatile storage
CN104375866A (zh) 一种单板的驱动更新方法及装置
CN102073544A (zh) 一种基于页操作的EEPROM cache方法
CN102270134B (zh) 一种Java卡中垃圾回收的方法及装置
CN103425761A (zh) 一种对打包文件进行碎片整理的方法、系统及设备
CN102541639A (zh) 一种cpu 卡数据处理方法、系统及cpu 卡
CN107124446A (zh) 应用程序下载方法、服务器及终端
CN104639317A (zh) 一种基于app应用模块对智能卡进行密钥更新的系统及方法
CN103336699A (zh) 嵌入式系统软件的升级方法和装置
CN107977206B (zh) 一种批量业务数据文件处理方法及装置
CN107102951A (zh) 存储器管理方法、存储器控制电路单元与存储器储存装置
CN101299190B (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
C14 Grant of patent or utility model
GR01 Patent grant