基于以太网的程序固化方法

文档序号:6493720阅读:162来源:国知局
基于以太网的程序固化方法
【专利摘要】本发明涉及一种基于以太网的程序固化方法,包括以下步骤:1】被加载端初始化:2】加载端与被加载端建立网络连接,完成同步:3】加载端将待固化文件加载到被加载端:4】被加载端根据文件加载信息表调用写Flash驱动程序将待固化文件逐一固化进Flash存储器中。本发明利用以太网传输速率较串口等介质更快的特性,将待固化文件快速地从加载端加载到被加载端,有效缩短文件加载所需时间,提高程序固化效率。
【专利说明】基于以太网的程序固化方法
【技术领域】
[0001]本发明属于计算机软件应用领域,具体涉及一种基于以太网的程序固化方法。
【背景技术】
[0002]嵌入式软件在开发调试完毕后,需要通过固化软件将其固化到目标机的Flash存储器中。固化过程,主要分为将待固化文件从加载端(一般为PC机)加载到被加载端(目标机)和被加载端将待固化文件写入Flash存储器两个步骤。将待固化文件从加载端加载到被加载端,可以采用不同的传输介质,如串口、以太网、AFDX总线等。在不同的传输介质条件下,文件加载过程所耗费的时间也各不相同。比如采用串口作为传输介质,文件传输速率低,在固化大文件时,需要耗费很长时间,固化效率低下。因此,采用一种高速率的传输介质,能够缩短加载时间,提高固化效率。

【发明内容】

[0003]本发明提供一种基于以太网的程序固化方法,利用以太网传输速率较串口等介质更快的特性,将待固化文件快速地从加载端加载到被加载端,有效缩短文件加载所需时间,提闻程序固化效率。
[0004]本发明的技术解决方案:
[0005]基于以太网的程序固化方法,其特殊之处在于:包括以下步骤: [0006]I】被加载端初始化:
[0007]启动操作系统,初始化文件加载器,启动文件加载任务,建立通讯端口,等待接收来自加载端的命令请求;
[0008]2】加载端与被加载端建立网络连接,完成同步:
[0009]3】加载端将待固化文件加载到被加载端:
[0010]3.1】加载端向被加载端发送多个加载数据包;每个加载数据包包括一个加载命令字、一个待固化文件ID、一个待固化文件总块数、加载数据包所对应的当前块号、加载数据包所包含的有效数据、有效数据长度及校验码;所述校验码为加载端根据有效数据计算得出;根据待固化文件的总块数将对应待固化文件分成多个数据块,并用块号对多个数据块依次编号;
[0011]3.2】被加载端逐一接收加载数据包:
[0012]3.2.1】被加载端接收第一个加载数据包,根据接收到的第一个加载数据包中文件总块数为第一个待固化文件申请相应内存空间,取得第一个待固化文件内存空间的起始地址;
[0013]将第一个加载数据包中的有效数据存储到当前块号所对应的内存空间中;
[0014]被加载端的文件加载器将待固化文件ID、内存空间起始地址写入到文件加载信息表中;
[0015]3.2.2】继续接收加载数据包,判断当前所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID是否一致:
[0016]如所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID 一致,则属于上一个待固化文件的加载数据包,将所接收到的当前加载数据包中包含的有效数据存储到当前块号所对应的内存空间中;
[0017]如所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID不一致,则属于下一个待固化文件的加载数据包,根据接收到的当前加载数据包中文件总块数为当前待固化文件申请相应内存空间,取得当前待固化文件内存空间的起始地址;
[0018]将当前加载数据包中的有效数据存储到当前块号所对应内存空间中;
[0019]被加载端的文件加载器将待固化文件的ID、内存空间起始地址写入到文件加载信息表中;
[0020]同时将累计得到的上一个待固化文件的有效数据总长度写入到文件加载信息表的相应位置;
[0021]3.2.3】回到步骤3.2.2】,直至接收不到加载数据包;
[0022]3.3】向加载端返回加载命令响应包;
[0023]3.4】加载端发送烧写数据包:
[0024]3.4.1】加载端向被加载端发送多个烧写数据包,所述烧写数据包中包含待固化文件ID以及相应的Flash存储器固化地址;
[0025]3.4.2】被加载端接收到所有烧写数据包后,根据各个烧写数据包中待固化文件ID将其对应的Flash存储器固化地址添加到文件加载信息表中;
[0026]4】被加载端根据文件加载信息表调用写Flash驱动程序将待固化文件逐一固化进Flash存储器中。
[0027]在步骤4】之后还包括校验步骤:
[0028]将已经固化在Flash存储器中的固化文件的内容与内存空间中的待固化文件内容逐一进行比对,并将比对结果返回给加载端。
[0029]上述步骤I】的具体步骤为
[0030]1.1】被加载端启动操作系统;
[0031]1.2】文件加载器初始化,将文件加载信息表清零;
[0032]1.3】打开一个基于连接的目标机套接字;
[0033]1.4】将目标机套接字与其地址绑定;
[0034]1.5】使能目标机套接字连接;
[0035]1.6】等待接收加载端命令请求。
[0036]上述步骤2】的具体步骤为:
[0037]2.1】加载端初始化到 被加载端的套接字连接;
[0038]2.2】加载端向被加载端发送同步请求数据包;
[0039]2.3】被加载端接收同步请求数据包,执行同步命令处理程序,并将同步完成的信息封装进同步命令响应包反馈回加载端;
[0040]2.4】加载端接收到被加载端返回的同步命令响应包后,确认同步完成;
[0041]还包括将有效数据存储到内存空间之前进行有效数据校验步骤:
[0042]被加载端根据有效数据计算一个比对校验码,将比对校验码与加载数据包中的对应校验码进行比较,如果一致,则存储有效数据;如果不一致,则向加载端返回错误提示。
[0043]本发明所具有的优点:
[0044]1、本发明采用以太网传输能显著提高程序固化效率,以固化一个16M大小的二进制文件为例,采用基于串口的固化方法,需要I个小时,而采用本方法,只需6分钟,时间缩短到原来的十分之一。
[0045]2、本发明的加载过程安全可靠,确定性强。
【专利附图】

【附图说明】
[0046]图1基于以太网的的程序固化流程图。
【具体实施方式】
[0047]基于以太网的程序固化方法具体实施步骤如下:
[0048]步骤1:被加载端启动操作系统,初始化文件加载器,启动文件加载任务,建立通讯端口,等待接收来自加载端的命令请求。
[0049]本步骤实现流程如下:
[0050]1.1)被加载端启动操作系统;
[0051]1.2)文件加载器初始化,将文件加载信息表清零;
[0052]1.3)打开一个基于连接的目标机套接字;
[0053]1.4)将目标机套接字与其地址绑定;
[0054]1.5)使能目标机套接字连接;
[0055]1.6)等待接收加载端命令请求;
[0056]步骤2:加载端与被加载端建立网络连接,完成同步。
[0057]本步骤实现流程如下:
[0058]2.1)加载端初始化到被加载端的套接字连接;
[0059]2.2)加载端向被加载端发送同步请求数据包;
[0060]2.3)被加载端接收同步请求数据包,执行同步命令处理程序,并将同步完成的信息封装进同步命令响应包反馈回加载端;
[0061]2.4)加载端接收到被加载端返回的同步命令响应包后,确认同步完成。
[0062]步骤3:加载端将待固化文件加载到被加载端。
[0063]本步骤实现流程如下:
[0064]3.1】加载端向被加载端发送多个加载数据包;每个加载数据包包括一个加载命令字、一个待固化文件ID、一个待固化文件总块数、加载数据包所对应的当前块号、加载数据包所包含的有效数据、有效数据长度及校验码;所述校验码根据有效数据计算得出;
[0065]3.2】被加载端逐一接收加载数据包:
[0066]3.2.1】被加载端接收第一个加载数据包,根据接收到的第一个加载数据包中文件总块数为第一个待固化文件申请相应内存空间,取得第一个待固化文件内存空间的起始地址;
[0067]将第一个加载数据包中的有效数据存储到当前块号所对应的内存空间中; [0068]被加载端的文件加载器将待固化文件ID、内存空间起始地址写入到文件加载信息表中;
[0069]3.2.2】继续接收加载数据包,判断当前所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID是否一致:
[0070]如所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID 一致,则属于上一个待固化文件的加载数据包,将所接收到的当前加载数据包中包含的有效数据存储到当前块号所对应的内存空间中;
[0071]如所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID不一致,则属于下一个待固化文件的加载数据包,根据接收到的当前加载数据包中文件总块数为当前待固化文件申请相应内存空间,取得当前待固化文件内存空间的起始地址;
[0072]将当前加载数据包中的有效数据存储到当前块号所对应内存空间中;
[0073]被加载端的文件加载器将待固化文件的ID、内存空间起始地址写入到文件加载信息表中;
[0074]同时将累计得到的上一个待固化文件的有效数据总长度写入到文件加载信息表的相应位置;
[0075]3.2.3】回到步骤3.2.2】,直至接收不到加载数据包;
[0076]3.3】向加载端返回加载命令响应包;
[0077]3.4]加载端发送烧写数据包:
[0078]3.4.1】加载端向被加载端发送多个烧写数据包,所述烧写数据包中包含待固化文件ID以及相应的Flash存储器固化地址;
[0079]3.4.2】被加载端接收到所有烧写数据包后,根据各个烧写数据包中待固化文件ID将其对应的Flash存储器固化地址添加到文件加载信息表中;
[0080]步骤4:被加载端将待固化文件固化进Flash并校验。
[0081]被加载端根据文件加载信息表调用写Flash驱动程序将待固化文件逐一固化进Flash存储器中。
[0082]校验步骤:将已经固化在Flash存储器中的固化文件的内容与内存空间中待固化文件内容逐一进行比对,并 将比对结果返回给加载端。
【权利要求】
1.基于以太网的程序固化方法,其特征在于:包括以下步骤: 1】被加载端初始化: 启动操作系统,初始化文件加载器,启动文件加载任务,建立通讯端口,等待接收来自加载端的命令请求; 2】加载端与被加载端建立网络连接,完成冋步; 3】加载端将待固化文件加载到被加载端: 3.1】加载端向被加载端发送多个加载数据包;每个加载数据包包括一个加载命令字、一个待固化文件ID、一个待固化文件总块数、加载数据包所对应的当前块号、加载数据包所包含的有效数据、有效数据长度及校验码;所述校验码为加载端根据有效数据计算得出; 3.2】被加载端逐一接收加载数据包: 3.2.1】被加载端接收第一个加载数据包,根据接收到的第一个加载数据包中文件总块数为第一个待固化文件申请相应内存空间,取得第一个待固化文件内存空间的起始地址;将第一个加载数据包中的有效数据存储到当前块号所对应的内存空间中; 被加载端的文件加载器将待固化文件ID、内存空间起始地址写入到文件加载信息表中; 3.2.2】继续接收加载数据包,判断当前所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID是否一致: 如所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID —致,则属于上一个待固化文件的加载数据包,将所接收到的当前加载数据包中包含的有效数据存储到当前块号所对应的内存空间中; 如所接收到的加载数据包中待固化文件ID与上一个加载数据包中的待固化文件ID不一致,则属于下一个待固化文件的加载数据包,根据接收到的当前加载数据包中文件总块数为当前待固化文件申请相应内存空间,取得当前待固化文件内存空间的起始地址;将当前加载数据包中的有效数据存储到当前块号所对应内存空间中;被加载端的文件加载器将待固化文件的ID、内存空间起始地址写入到文件加载信息表中;同时将累计得到的上一个待固化文件的有效数据总长度写入到文件加载信息表的相应位置; 3.2.3]回到步骤3.2.2】,直至接收不到加载数据包; 3.3】向加载端返回加载命令响应包; 3.4】加载端发送烧写数据包: 3.4.1】加载端向被加载端发送多个烧写数据包,所述烧写数据包中包含待固化文件ID以及相应的Flash存储器固化地址; 3.4.2】被加载端接收到所有烧写数据包后,根据各个烧写数据包中待固化文件ID将其对应的Flash存储器固化地址添加到文件加载信息表中; 4】被加载端根据文件加载信息表调用写Flash驱动程序将待固化文件逐一固化进Flash存储器中。
2.根据权利要求1所述的基于以太网的程序固化方法,其特征在于:在步骤4】之后还包括校验步骤: 将已经固化在Flash存储器中的固化文件的内容与内存空间中的待固化文件内容逐一进行比对,并将比对结果返回给加载端。
3.根据权利要求1或2所述的基于以太网的程序固化方法,其特征在于:所述步骤I】的具体步骤为 1.1】被加载端启动fe作系统; 1.2】文件加载器初始化,将文件加载信息表清零; 1.3】打开一个基于连接的目标机套接字; 1.4】将目标机套接字与其地址绑定; 1.5】使能目标机套接字连接; 1.6】等待接收加载端命令请求。
4.根据权利要求3所述的基于以太网的程序固化方法,其特征在于:所述步骤2】的具体步骤为: 2.1】加载端初始化到被加载端的套接字连接; 2.2】加载端向被加载端发送同步请求数据包; 2.3】被加载端接收同步请求数据包,执行同步命令处理程序,并将同步完成的信息封装进同步命令响应包反馈回加载端; 2.4】加载端接收到被加载端返回的同步命令响应包后,确认同步完成。
5.根据权利要求4所述的基于以太网的程序固化方法,其特征在于:还包括将有效数据存储到内存空间之前进行有效数据校验步骤: 被加载端根据接收到的有效数据计算一个比对校验码,将比对校验码与加载数据包中的对应校验码进行比较,如果一致,则存储有效数据;如果不一致,则向加载端返回错误提/Jn ο
【文档编号】G06F9/445GK103902306SQ201210575427
【公开日】2014年7月2日 申请日期:2012年12月26日 优先权日:2012年12月26日
【发明者】陈福, 李运喜, 任晓瑞, 赵根学, 邸海涛, 钟珊, 张晓红, 李向东 申请人:中国航空工业集团公司第六三一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1