一种在线升级方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:34471291 阅读:21 留言:0更新日期:2022-08-10 08:45
本申请属于软件升级领域,应用于CAN总线中,涉及一种在线升级方法、装置、计算机设备及存储介质,所述方法包括步骤:设置CAN总线网络传输速率和时间片分配;按照CAN总线网络传输速率和时间片分配,通过CAN总线获取软件升级程序;从第一中断向量表取出复位中断向量地址,执行第一中断复位函数后,跳转到软件升级程序的主函数,进行软件升级;升级程序执行完成后,跳转到第二中断向量表取出中断函数入口地址,再执行第二中断服务函数,执行完第二中断服务函数后再返回到用户应用程序主函数。通过在线升级程序与应用程序分离,可实现通过控制器局域网络总线直接对程序进行在线升级,便于程序升级维护。于程序升级维护。于程序升级维护。

【技术实现步骤摘要】
一种在线升级方法、装置、计算机设备及存储介质


[0001]本申请涉及软件升级
,尤其涉及一种在线升级方法、装置、计算机设备及存储介质。

技术介绍

[0002]在工业应用中,经常需要对产品程序进行软件升级维护,在形成产品后往往无法通过手动插拔仿真器的方式来升级。目前,对程序在线升级的方式,主要是通过在flash中采用双缓存的机制来实现。即在应用程序中增加对flash的操作功能,来实现对另一片缓存的读写,程序断电重启后再跳转到另一片缓存去执行功能。该方法存下以下不足:一是占用缓存空间大,需要两片独立的空间来存储应用程序;二是可靠性不足,在软件升级过程中,若系统意外掉电,软件程序将会升级失败无法运行;三是应用程序复杂度提高,不便于软件程序在线升级维护。

技术实现思路

[0003]本申请实施例的目的在于提出一种在线升级方法、装置、计算机设备及存储介质,以解决现有软件升级过程中,若系统意外掉电,软件程序将会升级失败无法运行的问题。
[0004]为了解决上述技术问题,本申请提供一种在线升级方法,采用了如下所述的技术方案,包括下述步骤:
[0005]设置CAN总线网络传输速率和时间片分配;
[0006]按照CAN总线网络传输速率和时间片分配,通过CAN总线获取软件升级程序;
[0007]从第一中断向量表取出复位中断向量地址,执行第一中断复位函数后,跳转到软件升级程序的主函数,进行软件升级;
[0008]升级程序执行完成后,跳转到第二中断向量表取出中断函数入口地址,再执行第二中断服务函数,执行完第二中断服务函数后再返回到用户应用程序主函数。
[0009]进一步的,所述设置CAN总线网络传输速率和时间片分配的步骤具体包括:
[0010]设置CAN总线网络传输速率为300Kbps~800Kbps,设置待升级设备的时钟晶振为8MHz的整数倍;
[0011]设置CAN总线时间片分配为每位时间片数为10,包括同步段为1位,传播段和第一相位缓冲段为5位,第二相位缓冲段为4位。
[0012]进一步的,所述按照CAN总线网络传输速率和时间片分配,通过CAN总线获取软件升级程序的步骤具体包括:
[0013]获取在线升级标识;
[0014]进入在线升级模式;
[0015]按照CAN总线网络传输速率和时间片分配,通过CAN总线接收地面控制系统升级软件;
[0016]将所述升级软件写入flash;
[0017]清除在线升级标识。
[0018]进一步的,所述从第一中断向量表取出复位中断向量地址,执行第一中断复位函数后,跳转到软件升级程序的主函数,进行软件升级的步骤具体包括:
[0019]获取栈顶指针;
[0020]跳转到第一中断向量表,获取复位中断向量的地址,该复位中断向量的地址指向第一中断服务函数的入口地址;
[0021]执行第一中断复位函数后,启动升级程序的主函数,进行软件升级。
[0022]进一步的,所述升级程序执行完成后,跳转到第二中断向量表取出中断函数入口地址,再执行第二中断服务函数,执行完第二中断服务函数后再返回到用户应用程序主函数的步骤具体包括:
[0023]将flash存储区设置两部分,一部分存储升级程序,另一部分存储应用程序;
[0024]升级程序执行完成后,跳转到第二中断向量表;
[0025]取出中断函数入口地址,再执行第二中断服务函数;
[0026]执行完第二中断服务函数后再返回到用户应用程序主函数。
[0027]进一步的,所述按照CAN总线网络传输速率和时间片分配,通过CAN总线接收地面控制系统升级软件的步骤具体包括:
[0028]通过CAN总线接收地面控制系统发送的包数据,所述包数据携带发送方校验码;
[0029]对所述包数据进行crc算法计算,并同所述发送方效验码作对比;
[0030]如果对比一致,则将所述包数据进行组装,连接成升级软件,否则舍弃所述包数据。
[0031]进一步的,所述在线升级方法,还包括:
[0032]在所述CAN总线上设置节点数据帧接收过滤原则。
[0033]为了解决上述技术问题,本申请还提供一种在线升级装置,采用了如下所述的技术方案,包括:
[0034]设置模块,用于设置CAN总线网络传输速率和时间片分配;
[0035]获取模块,用于按照CAN总线网络传输速率和时间片分配,通过CAN总线获取软件升级程序;
[0036]升级模块,用于从第一中断向量表取出复位中断向量地址,执行第一中断复位函数后,跳转到软件升级程序的主函数,进行软件升级;
[0037]跳转模块,用于升级程序执行完成后,跳转到第二中断向量表取出中断函数入口地址,再执行第二中断服务函数,执行完第二中断服务函数后再返回到用户应用程序主函数。
[0038]为了解决上述技术问题,本申请还提供一种计算机设备,采用了如下所述的技术方案,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述的在线升级方法的步骤。
[0039]为了解决上述技术问题,本申请还提供一种计算机可读存储介质,采用了如下所述的技术方案:所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述的在线升级方法的步骤。
[0040]与现有技术相比,本申请主要有以下有益效果:采用将在线升级程序和用户应用
程序分开的机制,在线升级程序仅提供在线升级功能,用户应用程序主要完成用户需求;在flash中采用单缓存的机制,来实现软件在线升级,节省空间;在升级过程中,即使意外掉电,仍然能够正常升级,便于程序在线升级维护。
附图说明
[0041]为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]图1是本申请可以应用于其中的示例性系统架构图;
[0043]图2是本申请可以应用于其中的一优选系统架构图;
[0044]图3是本申请的在线升级方法的一个实施例的流程图;
[0045]图4是图3中步骤S202的一种具体实施方式的流程图;
[0046]图5是本申请中发送方和接收方进行数据包校验的流程图;
[0047]图6是现有技术中嵌入式程序的启动流程图;
[0048]图7是本申请的程序运行流程图;
[0049]图8是本申请的在线升级装置的一个实施例的结构示意图;
[0050]图9是本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
[0051]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同;本文中在申请的说明书中所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在线升级方法,应用于CAN总线中,其特征在于,包括下述步骤:设置CAN总线网络传输速率和时间片分配;按照CAN总线网络传输速率和时间片分配,通过CAN总线获取软件升级程序;从第一中断向量表取出复位中断向量地址,执行第一中断复位函数后,跳转到软件升级程序的主函数,进行软件升级;升级程序执行完成后,跳转到第二中断向量表,取出中断函数入口地址,再执行第二中断服务函数,执行完第二中断服务函数后,再返回到用户应用程序主函数。2.根据权利要求1所述的在线升级方法,其特征在于,所述设置CAN总线网络传输速率和时间片分配的步骤具体包括:设置CAN总线网络传输速率为300Kbps~800Kbps,设置待升级设备的时钟晶振为8MHz的整数倍;设置CAN总线时间片分配为每位时间片数为10,包括同步段为1位,传播段和第一相位缓冲段为5位,第二相位缓冲段为4位。3.根据权利要求1所述的在线升级方法,其特征在于,所述按照CAN总线网络传输速率和时间片分配,通过CAN总线获取软件升级程序的步骤具体包括:获取在线升级标识;进入在线升级模式;按照CAN总线网络传输速率和时间片分配,通过CAN总线接收地面控制系统升级软件;将所述升级软件写入flash;清除在线升级标识。4.根据权利要求1所述的在线升级方法,其特征在于,所述从第一中断向量表取出复位中断向量地址,执行第一中断复位函数后,跳转到软件升级程序的主函数,进行软件升级的步骤具体包括:获取栈顶指针;跳转到第一中断向量表,获取复位中断向量的地址,该复位中断向量的地址指向第一中断服务函数的入口地址;执行第一中断复位函数后,启动升级程序的主函数,进行软件升级。5.根据权利要求1所述的在线升级方法,其特征在于,所述升级程序执行完成后,跳转到第二中断向量表,取出中断函数入口地址,再执行第二中断服务函数,执行...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:宁波天擎航天科技有限公司
类型:发明
国别省市:

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

1