CN110719328A - 一种下载程序的方法 - Google Patents
一种下载程序的方法 Download PDFInfo
- Publication number
- CN110719328A CN110719328A CN201910951944.XA CN201910951944A CN110719328A CN 110719328 A CN110719328 A CN 110719328A CN 201910951944 A CN201910951944 A CN 201910951944A CN 110719328 A CN110719328 A CN 110719328A
- Authority
- CN
- China
- Prior art keywords
- downloading
- program file
- data packet
- mode instruction
- program
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Abstract
本发明提出一种下载程序的方法,首先PC端读入当前需要下载的程序文件,对需要下载的程序文件与前一次下载的程序文件进行比对。然后根据比对结果进行选择下载指令,随后PC端就根据不同的下载指令进行数据包的传送。同时设备端根据数据包协带的信息把数据写到芯片的存储器上。本发明由于下载效率的提高,进而提高了开发人员的调试和开发效率,让开发者的思维更紧凑,而不会因为在等下载程序而消耗精力,也因此缩减了企业开发产品的周期。
Description
技术领域
本发明涉及数据下载领域,尤其涉及一种通过控制端对设备进行下载程序的方法。
背景技术
嵌入式系统是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高。特别是随着消费家电的智能化,嵌入式更显重要。
目前已有的相关文献资料描述的都是如何加载或启动程序,并没有对嵌入式下载程序有更多的研究和实践。由于嵌入式产品在开发和调试时需要下载程序,而下载程序通常有几百兆大小,需要大量地传输并更新数据,因此PC端(即控制端)与设备端有很大的传输开销。同时,为保证节点可靠接收下载的数据,需要对传输的下载数据包进行确认和擦写,也会产生控制开销。在嵌入式产品中,如果能提高下载程序的效率,是非常意义的。
目前的系统架构图如图1所示。比如,当开发平台是通过UART下载程序时,当下载的程序bin文件比较大的话,由于UART传输速率本身不高,那么下载程序就需要很长时间(少则十几分钟,多则半个多小时)。UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输。在嵌入式设计中,UART用于主机与辅助设备通信。以上的方式下载程序会浪费开发人员大量的宝贵时间。因为实际开发者通常在调试程序时只修改某一处小部分,而编译下载程序却要等很长时间。可见提高下载程序的效率对开发人员来说有举足轻重的影响。
发明内容
有鉴于此,为了降低传输开销和控制开销,提高下载程序的效率,本发明提供一种能快速下载程序的方法,使下载程序时间变短,提高下载效率。
本发明的技术方案如下:
一种下载程序的方法,包括以下步骤:
控制端比对的步骤:控制端对需要下载的当前程序文件与前一次下载的程序文件进行比对,根据比对结果发送高效下载模式指令或普通下载模式指令给设备端,并且控制端根据不同的指令传送对应的数据包给设备端;
设备端写入程序的步骤:设备端将接收的高效下载模式指令或普通下载模式指令进行解析,并将接收的数据包写入芯片的存储器中。
优选的,当控制端发送普通下载模式指令时,传送的是完整的当前程序文件数据包;当控制端发送高效下载模式指令时,传送的是当前程序文件与前一次下载的程序文件的差异信息数据包。
优选的,控制端与设备端之间通过传输媒介发送指令或传送数据包。
优选的,所述的传输媒介是串口线、USB线或网线。
作为本发明的控制端比对的一种实现方式,包括以下步骤:
步骤S101、控制端的下载工具模块读入需要下载的当前程序文件;
步骤S102、判断当前程序文件是否是第一次下载,如是,则到步骤S103,如不是则到步骤S104;
步骤S103、控制端下载当前程序文件,用当前程序文件替换前一次下载的程序文件并保存,并发送普通下载模式指令和传送完整的当前程序文件数据包给设备端;
步骤S104、对当前程序文件和前一次下载的程序文件进行相似度计算;
步骤S105、判断相似度是否大于等于预设的门限值,如果是,则到步骤S106,如不是则到步骤S103;
步骤S106、控制端下载当前程序文件与前一次下载的程序文件的差异信息并保存该差异信息,控制端发送高效下载模式指令和传送差异信息数据包给设备端。
优选的,所述的门限值为20%。
作为本发明的设备端写入程序的一种实现方式,包括以下步骤:
步骤S201、设备端接收PC端发送的指令;
步骤S202、对接收的指令进行解析;
步骤S203、判断接收的指令是否是普通下载模式指令;如是则到步骤S204,如不是则到步骤S205;
步骤S204、擦除芯片上的存储器中所有的数据;
步骤S205、根据指令中携带的信息擦除存储器中相应的数据块;
步骤S206、将接收到的数据包写入存储器中。
上述中的比对,是将当前程序文件与前一次下载的程序文件逐个字节进行比对。
利用本发明的下载程序的方法,下载程序的总时间=数据包传送时间+数据包确认时间+擦除时间+数据包写入时间。
在步骤S106中,对经过比对后字节相同的信息不作处理。
本发明的有益效果在于:
1)由于下载效率的提高,进而提高了开发人员的调试和开发效率,让开发者的思维更紧凑,而不会因为在等下载程序而消耗精力;
2)也缩减了企业开发产品的周期,更高效的运转。
综上所述,很显然本发明对嵌入式产品开发的企业和个人意义重大。
附图说明
图1为控制端和设备端的架构图;
图2为本发明的控制端比对的步骤示意图;
图3为本发明的设备端写入程序的步骤示意图。
具体实施例
下面结合附图对本公开实施例进行详细描述。
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本发明提出一种利用在控制端(下文用简称PC端)下载程序时比对前一次下载程序,得到相应的差异信息,在下载时只下载和前一次程序不同位置的数据到存储器。首先是PC工具发送包命令,然后芯片的boot程序解析PC发送这些差异信息,随后boot根据命令包协带的信息把数据写到芯片的存储器上。
实施例一
本发明首先PC端读入当前需要下载的程序文件,对需要下载的程序文件与前一次下载的程序文件进行比对。然后根据比对结果进行选择下载指令,随后PC端就根据不同的下载指令进行数据包的传送。同时设备端(本实施例是指芯片)根据数据包协带的信息把数据写到芯片的存储器上。
具体下载程序的流程如下:
PC端比对的步骤:
PC端的下载工具模块比对需要下载的当前程序文件与前一次下载的程序文件,根据比对结果下达高效下载模式指令或普通下载模式指令给设备端,PC端根据不同的指令进行数据包的传送;
PC端比对的目的是检查两次下载的程序文件的相似度,不同的需要下载,相同的不需要下载。这样就减少了传输数据包的个数,同时设备端需要确认和擦写的flash块次数就减少了。
设备端写入程序的步骤:
设备端根据接收的指令,将数据包写入芯片的存储器中。本发明的设备端指芯片。
当普通下载模式指令时,传送的是完整的当前程序文件数据包;当高效下载模式指令时,传送的是当前程序文件与前一次下载的程序文件的差异信息数据包。
本发明中PC端与设备端的传送是通过串口线、USB线、网线等传输媒介,也不排除通过其他媒介传输的可能。
作为步骤1的一种实施方式,PC端比对的步骤包括以下步骤,结合图2进行说明:
步骤S101、PC端的下载工具模块读入需要下载的当前程序文件;
步骤S102、判断当前程序文件是否是第一次下载,如是,则到步骤S103,如不是则到步骤S104;
步骤S103、PC端下载当前程序文件,用当前程序文件替换前一次下载的程序文件并保存,并发送普通下载模式指令和传送完整的当前程序文件数据包给设备端。
当第一次下载时也就是芯片第一次使用还未下载过的程序时,不需要进行比对。
步骤S104、对当前程序文件和前一次下载的程序文件进行相似度计算;
相似度计算主要是对两个程序文件进行比对,并记录两个程序文件的相似之处。比对的对象是两个程序文件本身,举例来说当前程序文件是a文件,PC端保存的前一次下载的程序文件是b文件,将a文件和b文件一个字节一个字节地比对,根据比对结果计算这两个文件的相似度。
步骤S105、判断相似度是否大于等于预设的门限值,如果是,则到步骤S106,如不是则到步骤S103;
步骤S106、PC端下载当前程序文件与前一次下载的程序文件的差异信息并将该差异信息保存,发送高效下载模式指令和传送差异信息数据包给设备端。
该步骤中对于比对相同的信息可以忽略不处理。本发明预设置的相似度门限值为20%,也就是当前下载的文件与前一次下载的文件有大于等于20%是相同的,那么使用高效下载模式指令进行传输下载,否则也是使用普通下载模式指令。因为当相似度小于20%,芯片boot的块擦写时间将大于整个芯片擦除的擦写时间。对小于20%的部分进行单独擦写,反而会降低效率。当然,也不排除相似度小于20%时进行局部擦写效率更高的可能。其思想与本发明相同,也同样落入本发明的保护范围。
作为步骤2的一种实施方式,设备端写入程序的步骤包括以下步骤,结合图3进行说明:
步骤S201、设备端接收PC端发送的普通下载模式指令或高效下载模式指令;
步骤S202、对接收的普通下载模式指令或高效下载模式指令进行解析;
步骤S203、判断接收的指令是否是普通下载模式指令;如是则到步骤S204,如不是则到步骤S205;
步骤S204、擦除芯片上的flash存储器中所有的数据;
将芯片上存储的旧的程序全部擦除。
步骤S205、根据指令中携带的信息擦除flash存储器中相应的数据块;
该步骤中只擦除差异信息所在的数据块,其他相同信息的数据块保持不变。
步骤S206、将接收到的数据包写入flash存储器中。
如果收到的是完整的当前程序文件数据包,则将完整的当前程序文件数据包写入全部擦除后的存储器中;如果收到的是差异信息数据包,则将差异信息数据包写入存储器中对应的数据块中。
整个过程中,下载程序的总时间=数据包传送时间+数据包确认时间+块擦除时间+数据包写入时间,下载程序的总时间是指从PC端读入当前程序文件开始,到设备端写入数据包结束的时间;数据包传输时间是指PC端将数据包传送给设备端的时间;数据包确认时间是指设备端对PC端发送的指令进行解析并接收数据包的时间;块擦除时间是指全部或部分擦除flash存储器上的数据的时间;数据包写入时间是指将完整的当前程序文件数据包或差异信息数据包写入flash存储器的时间。因此经过这样的改进和处理后,整个下载程序的速度可以得到很明显的提升,下载效率也提高了很多。
以上仅为说明本发明的实施方式,并不用于限制本发明,对于本领域的技术人员来说,凡在本发明的精神和原则之内,不经过创造性劳动所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种下载程序的方法,其特征在于:包括以下步骤:
控制端比对的步骤:控制端对需要下载的当前程序文件与前一次下载的程序文件进行比对,根据比对结果发送高效下载模式指令或普通下载模式指令给设备端,并且控制端根据不同的指令传送对应的数据包给设备端;
设备端写入程序的步骤:设备端将接收的高效下载模式指令或普通下载模式指令进行解析,并将接收的数据包写入芯片的存储器中。
2.根据权利要求1所述的一种下载程序的方法,其特征在于:当控制端发送普通下载模式指令时,传送的是完整的当前程序文件数据包;当控制端发送高效下载模式指令时,传送的是当前程序文件与前一次下载的程序文件的差异信息数据包。
3.根据权利要求1或2所述的一种下载程序的方法,其特征在于:控制端与设备端之间通过传输媒介发送指令或传送数据包。
4.根据权利要求3所述的一种下载程序的方法,其特征在于:所述的传输媒介是串口线、USB线或网线。
5.根据权利要求1所述的一种下载程序的方法,其特征在于:所述的控制端比对的步骤包括:
步骤S101、控制端的下载工具模块读入需要下载的当前程序文件;
步骤S102、判断当前程序文件是否是第一次下载,如是,则到步骤S103,如不是则到步骤S104;
步骤S103、控制端下载当前程序文件,用当前程序文件替换前一次下载的程序文件并保存,并发送普通下载模式指令和传送完整的当前程序文件数据包给设备端;
步骤S104、对当前程序文件和前一次下载的程序文件进行相似度计算;
步骤S105、判断相似度是否大于等于预设的门限值,如果是,则到步骤S106,如不是则到步骤S103;
步骤S106、控制端下载当前程序文件与前一次下载的程序文件的差异信息并保存该差异信息,控制端发送高效下
载模式指令和传送差异信息数据包给设备端。
6.根据权利要求5所述的一种下载程序的方法,其特征在于:所述的门限值为20%。
7.根据权利要求1所述的一种下载程序的方法,其特征在于:所述的设备端写入程序的步骤包括:
步骤S201、设备端接收PC端发送的普通下载模式指令或高效下载模式指令;
步骤S202、对接收的普通下载模式指令或高效下载模式指令进行解析;
步骤S203、判断接收的指令是否是普通下载模式指令;如是则到步骤S204,如不是则到步骤S205;
步骤S204、擦除芯片上的存储器中所有的数据;
步骤S205、根据指令中携带的信息擦除存储器中相应的数据块;
步骤S206、将接收到的数据包写入存储器中。
8.根据权利要求5所述的一种下载程序的方法,其特征在于:所述的控制端的比对,是将当前程序文件与前一次下载的程序文件逐个字节进行比对。
9.根据权利要求1所述的一种下载程序的方法,其特征在于:下载程序的总时间=数据包传送时间+数据包确认时间+擦除时间+数据包写入时间。
10.根据权利要求5所述的一种下载程序的方法,其特征在于:在步骤S106中,对经过比对后字节相同的信息不作处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910951944.XA CN110719328A (zh) | 2019-10-09 | 2019-10-09 | 一种下载程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910951944.XA CN110719328A (zh) | 2019-10-09 | 2019-10-09 | 一种下载程序的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110719328A true CN110719328A (zh) | 2020-01-21 |
Family
ID=69212329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910951944.XA Pending CN110719328A (zh) | 2019-10-09 | 2019-10-09 | 一种下载程序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110719328A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230316B1 (en) * | 1998-04-17 | 2001-05-08 | Symantec Corporation | Patching rebased and realigned executable files |
CN103885807A (zh) * | 2014-04-03 | 2014-06-25 | 四川九成信息技术有限公司 | 设备程序更新方法 |
CN104615470A (zh) * | 2015-03-04 | 2015-05-13 | 成都维远艾珏信息技术有限公司 | 一种嵌入式设备程序更新方法 |
CN108415717A (zh) * | 2018-03-22 | 2018-08-17 | 南京尤尼泰信息科技有限公司 | 一种zynqsoc固件升级方法及升级装置 |
CN109582323A (zh) * | 2018-11-23 | 2019-04-05 | 网易(杭州)网络有限公司 | 应用安装包的增量更新方法、装置、终端及服务器 |
-
2019
- 2019-10-09 CN CN201910951944.XA patent/CN110719328A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230316B1 (en) * | 1998-04-17 | 2001-05-08 | Symantec Corporation | Patching rebased and realigned executable files |
CN103885807A (zh) * | 2014-04-03 | 2014-06-25 | 四川九成信息技术有限公司 | 设备程序更新方法 |
CN104615470A (zh) * | 2015-03-04 | 2015-05-13 | 成都维远艾珏信息技术有限公司 | 一种嵌入式设备程序更新方法 |
CN108415717A (zh) * | 2018-03-22 | 2018-08-17 | 南京尤尼泰信息科技有限公司 | 一种zynqsoc固件升级方法及升级装置 |
CN109582323A (zh) * | 2018-11-23 | 2019-04-05 | 网易(杭州)网络有限公司 | 应用安装包的增量更新方法、装置、终端及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2479013C2 (ru) | Способ оптимизации твердотельного накопителя и оптимизатор | |
US8799521B2 (en) | System and method for receiving control commands at a peripheral device | |
CN110837385A (zh) | 一种基于CANopen协议的DSP应用程序在线升级方法 | |
CN102446141B (zh) | 用于实现写保护控制的装置和方法 | |
CN101163050A (zh) | 设备近端维护方法、系统和设备 | |
CN113010470B (zh) | 边缘节点远程控制系统、方法、设备及存储介质 | |
CN108694052B (zh) | 一种固件升级方法、固件升级装置及固件升级系统 | |
US20020059494A1 (en) | Microcomputer and method of controlling the same | |
CN105630428A (zh) | 一种用于数据通信的方法和系统 | |
CN104731626A (zh) | 应用的安装方法及装置 | |
CN104133743A (zh) | 一种将文件烧录到emmc芯片的方法及装置 | |
CN107678770B (zh) | 接口芯片升级方法、装置、存储介质和处理器 | |
CN110719328A (zh) | 一种下载程序的方法 | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
CN111858020B (zh) | 用户资源限制方法、装置及计算机存储介质 | |
CN107450937B (zh) | 一种应用程序的运行方法和运行装置 | |
CN101561760B (zh) | 接口卡固件升级方法 | |
CN102193745B (zh) | 快闪存储器储存装置、其控制器与写入管理方法 | |
CN101587427B (zh) | 一种通过扩展sd/mmc协议实现数码设备对存储卡控制的方法 | |
CN112866830B (zh) | 一种抄表方法及装置 | |
CN112540729A (zh) | 数据下载的方法、装置、智能卡及存储介质 | |
CN111522572A (zh) | 一种用于嵌入式软件的在线升级方法及系统 | |
CN100538673C (zh) | 嵌入式系统及其接口装置与非易失性存储器的更新方法 | |
CN115292266B (zh) | 一种基于存储器的高可靠日志存储方法 | |
CN112073218B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200121 |
|
RJ01 | Rejection of invention patent application after publication |