一种程序下载方法及装置与流程

文档序号:11948231阅读:302来源:国知局
一种程序下载方法及装置与流程

本发明涉及计算机领域,更具体地,涉及一种程序下载方法及装置。



背景技术:

控制器是电子设备上的一种重要装置,负责完成协调和指挥整个电子设备系统的操作,在技术升级等情况下,需要对控制器中的软件进行更新。

现有的控制器软件更新的方法,一般是通过网络将软件程序传输到控制器上,控制器上的处理器再将程序烧写到存储设备上的程序存储专用区间。这种程序下载方法需要占用处理器的资源,在控制器上运行的实时任务由于处理器资源被占用,可能导致实时任务被程序下载打断时间过长,造成通信中断、任务挂起以及一些其他不可预知的设备异常情况;或导致程序下载总是被实时任务打断,造成程序下载总是处于等待和被打断的状态。



技术实现要素:

本发明的目的在于提供一种程序下载方法及装置,使程序的下载不对控制器上运行的实时任务产生影响。

一种程序下载方法,所述方法应用于控制器,所述控制器中设置有现场可编程门阵列,所述方法包括:

当接收到程序下载请求时,挂起当前所有实时任务对存储设备的输入输出操作;所述程序下载请求中携带有程序下载参数;

在所述现场可编程门阵列的预设逻辑资源上,加载与所述程序下载请求相对应的程序下载模块;

触发所述程序下载模块依据所述程序下载参数进行程序下载,并将下载得到的程序写入所述存储设备。

优选的,所述在所述现场可编程门阵列的预设逻辑资源上,加载与所述程序下载请求相对应的程序下载模块,包括:

判断当前所述现场可编程门阵列的预设逻辑资源是否处于空闲态;

若是,则将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上;

若否,则暂停占用所述预设逻辑资源的任务,对所述预设逻辑资源进行配置,使所述预设逻辑资源处于空闲态,将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上。

优选的,所述触发所述程序下载模块依据所述程序下载参数进行程序下载,并将下载得到的程序写入所述存储设备,包括:

根据所述程序下载参数,在所述存储设备上为下载得到的程序分配相应的存储空间;

对下载得到的程序进行备份;

将所述下载得到的程序和备份的程序写入所述存储设备相应的存储空间。

优选的,所述挂起当前所有实时任务对存储设备的输入输出操作之后,还包括:

根据当前运行在处理器上的各个实时任务的优先级,判断所述各个实时任务对应的数据是否需要存储;

若所述数据需要存储,则根据所述数据的对应的实时任务的优先级为所述数据分配对应的缓存并将所述数据存储到对应的缓存;若所述数据不需要存储,则将所述数据丢弃。

优选的,所述方法还包括:

当程序下载完成后,对所述预设逻辑资源进行配置,使所述预设逻辑资源恢复为加载所述程序下载模块之前的状态,同时恢复当前所有实时任务对所述存储设备的输入输出操作。

一种程序下载装置,所述装置应用于控制器,所述控制器中设置有现场可编程门阵列,所述装置包括:

挂起模块,用于当接收到程序下载请求时,挂起当前所有实时任务对存储设备的输入输出操作;所述程序下载请求中携带有程序下载参数;

加载模块,用于在所述现场可编程门阵列的预设逻辑资源上,加载与所述程序下载请求相对应的程序下载模块;

触发模块,用于触发所述程序下载模块依据所述程序下载参数进行程序下载,并将下载得到的程序写入所述存储设备。

优选的,所述加载模块包括:

判断子模块,用于判断当前所述现场可编程门阵列的预设逻辑资源是否处于空闲态;

第一加载子模块,用于当所述预设逻辑资源处于空闲态时,将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上;

第二加载子模块,用于当所述预设逻辑资源处于非空闲态时,暂停占用所述预设逻辑资源的任务,对所述预设逻辑资源进行配置,使所述预设逻辑资源处于空闲态,将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上。

优选的,所述触发模块包括:

分配子模块,用于根据所述程序下载参数,在所述存储设备上为下载得到的程序分配相应的存储空间;

备份子模块,用于对下载得到的程序进行备份;

写入子模块,用于将所述下载得到的程序和备份的程序写入所述存储设备相应的存储空间。

优选的,所述装置还包括:

存储模块,用于根据当前运行在处理器上的各个实时任务的优先级,判断所述各个实时任务对应的数据是否需要存储;若所述数据需要存储,则根据所述数据的对应的实时任务的优先级为所述数据分配对应的缓存并将所述数据存储到对应的缓存;若所述数据不需要存储,则将所述数据丢弃。

优选的,所述装置还包括:

动态重配置模块,用于当程序下载完成后,对所述预设逻辑资源进行配置,使所述预设逻辑资源恢复为加载所述程序下载模块之前的状态,同时恢复当前所有实时任务对所述存储设备的输入输出操作。

相较与现有技术,本发明实现的有益效果为:

以上本发明所提供的一种程序下载方法,所述方法应用于控制器,所述控制器中设置有现场可编程门阵列,当接收到程序下载请求时,挂起当前所有实时任务对存储设备的输入输出操作;所述程序下载请求中携带有程序下载参数;在所述现场可编程门阵列的预设逻辑资源上,加载与所述程序下载请求相对应的程序下载模块;触发所述程序下载模块依据所述程序下载参数进行程序下载,并将下载得到的程序写入所述存储设备。

本申请提供的程序下载方法利用现场可编程门阵列的动态重加载功能,在接收到程序下载请求后,在现场可编程逻辑门阵列上预设的逻辑资源上加载程序下载模块执行程序下载,不占用处理器的资源,使程序的下载不对控制器上运行的实时任务产生影响。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明公开的一种程序下载方法流程图;

图2为本发明公开的一种程序下载方法又一方法流程图;

图3为本发明公开的一种程序下载方法又一方法流程图;

图4为本发明公开的一种程序下载方法又一方法流程图;

图5为本发明公开的一种程序下载装置结构示意图;

图6为本发明公开的另一种程序下载装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1为本发明公开的一种程序下载方法流程图,所述方法应用于控制器,所述控制器中设置有现场可编程门阵列,所述方法包括:

步骤S101:当接收到程序下载请求时,挂起当前所有实时任务对存储设备的输入输出操作;所述程序下载请求中携带有程序下载参数;

具体的,控制器的处理器接收到程序下载请求时,挂起当前所有实时任务对存储设备的输入输出操作,使处理器对存储设备的总线操作挂起。所述程序下载请求中携带有程序下载参数,所述下载参数包括程序长度、程序的版本号、校验码。

步骤S102:在所述现场可编程门阵列的预设逻辑资源上,加载与所述程序下载请求相对应的程序下载模块;

其中,所述现场可编程门阵列具有动态重加载功能,所述预设逻辑资源是指在现场可编程门阵列上划出一块特定的区域,在控制器需要进行程序下载时加载程序下载模块。

步骤S103:触发所述程序下载模块依据所述程序下载参数进行程序下载,并将下载得到的程序写入所述存储设备;

具体的,在程序下载模块执行程序下载时会将下载得到的程序写入所述存储设备,此时,处理器上运行的实时任务如果对存储设备执行输入输出操作会引起总线冲突,影响程序的下载,所以为了避免总线冲突,在程序下载模块执行程序下载之前挂起当前所有运行在处理器上的实时任务对存储设备的输入输出操作,以便使所述程序下载模块控制对存储设备的输入输出操作。处理器触发所述程序下载模块,根据所述程序下载参数自动执行程序下载。

本申请提供的程序下载方法利用现场可编程门阵列的动态重加载功能,在接收到程序下载请求时,在现场可编程逻辑门阵列上预设的逻辑资源上加载程序下载模块执行程序下载,不占用处理器的资源,使程序的下载不对控制器上运行的实时任务产生影响。

请参阅图2,所述在所述现场可编程门阵列的预设逻辑资源上,加载与所述程序下载请求相对应的程序下载模块,具体执行过程如下:

步骤S201:判断当前所述现场可编程门阵列的预设逻辑资源是否处于空闲态;

由于在控制器上没有程序下载任务时,所述现场可编程门阵列上的预设逻辑资源有可能被控制器上其他任务占用,当接收到程序下载请求后,需要判断当前所述现场可编程门阵列的预设逻辑资源是否处于空闲态。

步骤S202:若是,则将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上;

步骤S203:若否,则暂停占用所述预设逻辑资源的任务,对所述预设逻辑资源进行配置,使所述预设逻辑资源处于空闲态,将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上。

所述预设逻辑资源主要运行着一种非关键信息的采集、计算加速、冗余计算、冗余通道、监视诊断等停止后不会影响主程序运行的任务,这些任务也是通过现场可编程门阵列的动态重加载来实现的,这些任务相对来说不是非常重要,当控制器的处理器接收到程序下载请求时,暂停占用所述预设逻辑资源的任务,对所述预设逻辑资源进行配置,使所述预设逻辑资源处于空闲态,将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上。

请参阅图3,所述触发所述程序下载模块依据所述程序下载参数进行程序下载,并将下载得到的程序写入所述存储设备,具体包括以下步骤:

步骤S301:根据所述程序下载参数,在所述存储设备上为下载得到的程序分配相应的存储空间;

步骤S302:对下载得到的程序进行备份;

步骤S303:将所述下载得到的程序和备份的程序写入所述存储设备相应的存储空间。

具体的,下载得到的程序存储在存储设备上的专用区间,在处理器触发所述程序下载模块依据所述程序下载参数进行程序下载时,需要根据程序下载参数中程序长度,在所述存储设备的专用区间上分配相应的存储空间。出于冗余保护的考虑,将下载得到的程序进行备份,在所述存储设备上存储两份程序,避免软件更新过程中断电等意外,导致程序被破坏。

请参阅图4,图4为本发明公开的另一种程序下载方法,具体包括以下步骤:

步骤S101:当接收到程序下载请求时,挂起当前所有实时任务对存储设备的输入输出操作;所述程序下载请求中携带有程序下载参数;

步骤S104:根据当前运行在处理器上的各个实时任务的优先级,判断所述各个实时任务对应的数据是否需要存储;若所述数据需要存储,则根据所述数据的对应的实时任务的优先级为所述数据分配对应的缓存并将所述数据存储到对应的缓存;若所述数据不需要存储,则将所述数据丢弃。

具体的,在处理器上运行着不同优先级的实时任务,这些实时任务对应的产生数据,数据的重要程度是和对应的实时任务相关的,即这些实时任务决定于这些实时任务对应的数据是否重要。在挂起当前所有实时任务对存储设备的输入输出操作后,需要将一些重要的数据进行缓存,同时因为缓存不下所有实时任务的数据而丢弃一些非重要数据。

根据所述数据的对应的实时任务的优先级为所述数据分配对应的缓存并将所述数据存储到对应的缓存,优先级高的实时任务对应的数据也越重要,对应分配的缓存会大一些,优先级低的实时任务对应的数据重要性较低,对应分配的缓存会小一些。

优选的,对于至关重要的数据,会用专用的铁电存储器进行存储。

步骤S102:在所述现场可编程门阵列的预设逻辑资源上,加载与所述程序下载请求相对应的程序下载模块;

步骤S103:触发所述程序下载模块依据所述程序下载参数进行程序下载,并将下载得到的程序写入所述存储设备;

步骤S105:当程序下载完成后,对所述预设逻辑资源进行配置,使所述预设逻辑资源恢复为加载所述程序下载模块之前的状态,同时恢复当前所有实时任务对所述存储设备的输入输出操作。

具体的,所述现场可编程门阵列具有动态重加载功能,在现场可编程门阵列的动态重加载的区域,一般执行一些停止后不会影响主程序运行的任务,当程序下载完成后,对所述预设逻辑资源进行配置,使所述预设逻辑资源恢复为加载所述程序下载模块之前的状态,若所述预设逻辑资源在加载所述程序下载模块之前的状态为空闲态,则将所述预设逻辑资源恢复为空闲态;若所述预设逻辑资源在加载所述程序下载模块之前的状态为运行着实现冗余计算、冗余通道、监视诊断等停止后不会影响主程序运行的任务,则使所述预设逻辑资源继续执行所述任务。同时,在程序下载完成后,恢复处理器对所述存储设备的输入输出操作。

基于上述本发明公开的一种程序下载方法,请参阅图5,本发明对应公开了一种程序下载装置,所述装置应用于控制器,所述控制器中设置有现场可编程门阵列,包括:

挂起模块101,用于当接收到程序下载请求时,挂起当前所有实时任务对存储设备的输入输出操作;所述程序下载请求中携带有程序下载参数;

加载模块102,用于在所述现场可编程门阵列的预设逻辑资源上,加载与所述程序下载请求相对应的程序下载模块;

触发模块103,用于触发所述程序下载模块依据所述程序下载参数进行程序下载,并将下载得到的程序写入所述存储设备。

本申请提供的程序下载装置利用现场可编程门阵列的动态重加载功能,在接收到程序下载请求时,在现场可编程逻辑门阵列上预设的逻辑资源上加载程序下载模块执行程序下载,不占用处理器的资源,使程序的下载不对控制器上运行的实时任务产生影响。

请参阅图6,图6为本发明公开的另一种程序下载装置结构示意图,所述加载模块102包括:

判断子模块106,用于判断当前所述现场可编程门阵列的预设逻辑资源是否处于空闲态;

第一加载子模块107,用于当所述预设逻辑资源处于空闲态时,将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上;

第二加载子模块108,用于当所述预设逻辑资源处于非空闲态时,暂停占用所述预设逻辑资源的任务,对所述预设逻辑资源进行配置,使所述预设逻辑资源处于空闲态,将与所述程序下载请求相对应的程序下载模块加载到所述预设逻辑资源上。

所述触发模块包括:

分配子模块109,用于根据所述程序下载参数,在所述存储设备上为下载得到的程序分配相应的存储空间;

备份子模块110,用于对下载得到的程序进行备份;

写入子模块111,用于将所述下载得到的程序和备份的程序写入所述存储设备相应的存储空间。

所述装置还包括存储模块104,用于根据当前运行在处理器上的各个实时任务的优先级,判断所述各个实时任务对应的数据是否需要存储;若所述数据需要存储,则根据所述数据的对应的实时任务的优先级为所述数据分配对应的缓存并将所述数据存储到对应的缓存;若所述数据不需要存储,则将所述数据丢弃。

存储模块104,用于在当控制器中的处理器接收到程序下载请求时,挂起模块101挂起当前所有实时任务对存储设备的输入输出操作时,将一些重要数据进行存储,避免重要数据的丢失,避免了程序下载对运行在处理器上的实时任务的影响。

所述装置还包括动态重配置模块105,用于当程序下载完成后,对所述预设逻辑资源进行配置,使所述预设逻辑资源恢复为加载所述程序下载模块之前的状态,同时恢复当前所有实时任务对所述存储设备的输入输出操作。

动态重配置模块105,用于在程序下载结束后,将现场可编程门阵列中用于程序下载的逻辑资源进行动态重配置,使所述预设逻辑资源恢复为加载所述程序下载模块之前的状态,若所述预设逻辑资源在加载所述程序下载模块之前的状态为空闲态,则将所述预设逻辑资源恢复为空闲态;若所述预设逻辑资源在加载所述程序下载模块之前的状态为运行着实现冗余计算、冗余通道、监视诊断等停止后不会影响主程序运行的任务,则使所述预设逻辑资源继续执行所述任务。提高了控制器上资源的利用率,且恢复了当前所有实时任务对所述存储设备的输入输出操作,使运行在处理器上的实时任务尽快恢复正常运行。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1