一种基于Zynq的业务程序故障恢复方法技术

技术编号:36439796 阅读:33 留言:0更新日期:2023-01-20 22:54
本发明专利技术公开了一种基于Zynq的业务程序故障恢复方法,操作系统正常启动后,每隔第一预设时长生成并发送心跳信号至单片机,且业务程序生成状态记录文本并存储于PL端,并每隔第一预设时长于状态记录文本写入一次状态正常信息;通过接收心跳信号来判断操作系统是否崩溃,进而通过状态记录文本来判断操作系统的崩溃是否由业务程序引起,若不是由业务程序引起,直接重启PS端的操作系统,若是由业务程序引起,则注释掉业务程序的自动运行代码,然后再重启PS端的操作系统,免去了通过人工现场调试来恢复操作系统的繁琐操作,大大提升了Zynq平台的运行稳定性。平台的运行稳定性。平台的运行稳定性。

【技术实现步骤摘要】
一种基于Zynq的业务程序故障恢复方法


[0001]本专利技术涉及Zynq故障恢复
,具体涉及一种基于Zynq的业务程序故障恢复方法。

技术介绍

[0002]目前,Zynq平台在工作过程中若出现PS端的操作系统崩溃卡死情况时,无法判断崩溃卡死是由操作系统本身故障还是其运行的业务程序出现故障而导致的,进而无法进行针对性的故障恢复以重启操作系统,则只能通过人工现场调试来恢复操作系统,效率低下且费时费力,大大降低了Zynq平台的运行稳定性。

技术实现思路

[0003]本专利技术的主要目的是提供一种基于Zynq的业务程序故障恢复方法,旨在解决Zynq平台在工作过程中若出现PS端的操作系统崩溃卡死情况时,无法判断崩溃卡死是由操作系统本身故障还是其运行的业务程序出现故障而导致的问题。
[0004]本专利技术提出的技术方案为:一种基于Zynq的业务程序故障恢复方法,应用于Zynq应用系统;所述系统包括Zynq平台,以及与所述Zynq平台通信连接的单片机;所述Zynq平台包括彼此通信连接的PS端和PL端;所述方法,包括:PS端的操作系统正常启动后,基于操作系统自动运行业务程序;操作系统每隔第一预设时长生成并发送心跳信号至单片机;业务程序生成状态记录文本并存储于PL端,并每隔第一预设时长于状态记录文本写入一次状态正常信息,其中,状态正常信息用于表述业务程序运行状态正常;当单片机在上一次接收到心跳信号的第一预设时长后未接收到心跳信号时,等待第二预设时长,根据等待的第二预设时长内是否接收到心跳信号判断操作系统是否崩溃卡死,其中,第二预设时长大于第一预设时长;当操作系统崩溃卡死时,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电;嵌入式固定程序读取状态记录文本,以判断状态记录文本中上一次应该写入状态正常信息的时间点是否写入了状态正常信息;若是,通过单片机切换Zynq平台的上电电平以启动PS端的操作系统;若否,嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行,然后执行所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统的步骤。
[0005]优选的,所述系统还包括与Zynq平台远程通信连接的调试终端;所述嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行,之后还包括:
嵌入式固定程序将被注释的业务程序标记为待修正程序,并将待修正程序的源代码发送至调试终端;调试终端获取输入的与待修正程序对应的修正后程序的源代码;调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码;执行所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统的步骤。
[0006]优选的,所述系统还包括与所述调试终端通信连接的且基于Zynq的测试平台;所述调试终端获取输入的与待修正程序对应的修正后程序的源代码,之后还包括:调试终端将修正后程序的源代码发送至测试平台;单片机获取PL端的状态记录文本,并获取状态记录文本中状态正常信息的条数,并基于状态正常信息的条数和第一预设时长生成测试时长;测试平台运行待修正程序,以判断待修正程序是否出现运行故障,其中,待修正程序的运行时长为测试时长;若是,测试平台生成测试日志,并将待修正程序的源代码发送至调试终端;若否,执行所述调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码的步骤。
[0007]优选的,所述系统还包括与所述调试终端通信连接的且基于Zynq的测试平台;测试平台运行有并行测试进程;所述调试终端获取输入的与待修正程序对应的修正后程序,之后还包括:调试终端将修正后程序的源代码发送至测试平台;并行测试进程将修正后程序的源代码按照功能拆分为不同的独立程序模块;并行测试进程分别且同步对不同的独立程序模块进行测试运行,并判断各独立程序模块是否均运行正常;若是,执行所述调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码的步骤;若否,并行测试进程将出现运行故障的独立程序模块的源代码发送至调试终端。
[0008]优选的,所述测试平台包括测试内存;所述并行测试进程分别且同步对不同的独立程序模块进行测试运行,并判断各独立程序模块是否均运行正常,包括:并行测试进程将测试内存确定多个不同的测试空间,其中,测试空间的数量和独立程序模块的数量一致;并行测试进程将独立程序模块和测试空间建立对应关系;并行测试进程确定各测试空间的容量值;并行测试进程分别且同步对不同的独立程序模块进行测试运行,且各独立程序模块运行过程中所需要读写的数据文件均存入对应的测试空间。
[0009]优选的,所述并行测试进程确定各测试空间的容量值,包括:单片机获取业务程序在PS端基于操作系统运行后产生的业务数据;单片机将业务数据拆分为多个子业务数据,其中,子业务数据的数量和独立程序模块的数量一致,子业务数据和独立程序模块一一对应,且各子业务数据均是由对应的独立程序模块运行而产生;
单片机生成各独立程序模块对应的数据比例值,并将数据比例值发送至测试平台;其中,数据比例值为各独立程序模块对应的子业务数据的大小值除以业务数据的大小值;并行测试进程基于数据比例值确定各独立程序模块所对应的测试空间的容量值,其中,各独立程序模块所对应的测试空间的容量值为对应的数据比例值乘以测试内存的总容量。
[0010]优选的,所述系统还包括与Zynq平台通信连接的非易失存储器;所述PS端设置有第一存储器;所述当操作系统崩溃卡死时,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电,之后还包括:嵌入式固定程序扫描第一存储器,以判断第一存储器内是否存储有业务程序运行产生的业务数据;当第一存储器内存储有业务程序运行产生的业务数据时,嵌入式固定程序将业务数据复制写入非易失存储器。
[0011]优选的,所述系统还包括与Zynq平台通信连接的管理终端;所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统,之后还包括:嵌入式固定程序获取PS端在过去预设时间段内运行产生的日志文件,其中,PS端的操作系统在运行过程中产生的日志文件存储至第一存储器;嵌入式固定程序分析日志文件,以判断过去预设时间段内,PS端的运行内存的平均占用率是否高于预设值;若是,嵌入式固定程序生成用于反馈PS端运行内存不足的提示信息,并将提示信息发送至管理终端。
[0012]优选的,所述第一存储器内存储有内核启动文件;所述PL端设置有第二存储器;所述第二存储器存储有内核启动文件的镜像文件;所述方法,还包括:PS端的操作系统正常启动后,操作系统执行系统备份进程,以将当前时刻下第一存储器内存储的内核启动文件作为新的镜像文件复制写入所述第二存储器,以替换所述第二存储器中原有的内核启动文件的镜像文件;所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统,包括:嵌入式固定程序将第二存储内存储的内核启动文件的镜像文件写入所述第一存储本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Zynq的业务程序故障恢复方法,其特征在于,应用于Zynq应用系统;所述系统包括Zynq平台,以及与所述Zynq平台通信连接的单片机;所述Zynq平台包括彼此通信连接的PS端和PL端;所述方法,包括:PS端的操作系统正常启动后,基于操作系统自动运行业务程序;操作系统每隔第一预设时长生成并发送心跳信号至单片机;业务程序生成状态记录文本并存储于PL端,并每隔第一预设时长于状态记录文本写入一次状态正常信息,其中,状态正常信息用于表述业务程序运行状态正常;当单片机在上一次接收到心跳信号的第一预设时长后未接收到心跳信号时,等待第二预设时长,根据等待的第二预设时长内是否接收到心跳信号判断操作系统是否崩溃卡死,其中,第二预设时长大于第一预设时长;当操作系统崩溃卡死时,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电;嵌入式固定程序读取状态记录文本,以判断状态记录文本中上一次应该写入状态正常信息的时间点是否写入了状态正常信息;若是,通过单片机切换Zynq平台的上电电平以启动PS端的操作系统;若否,嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行,然后执行所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统的步骤。2.根据权利要求1所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,所述系统还包括与Zynq平台远程通信连接的调试终端;所述嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行,之后还包括:嵌入式固定程序将被注释的业务程序标记为待修正程序,并将待修正程序的源代码发送至调试终端;调试终端获取输入的与待修正程序对应的修正后程序的源代码;调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码;执行所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统的步骤。3.根据权利要求2所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,所述系统还包括与所述调试终端通信连接的且基于Zynq的测试平台;所述调试终端获取输入的与待修正程序对应的修正后程序的源代码,之后还包括:调试终端将修正后程序的源代码发送至测试平台;单片机获取PL端的状态记录文本,并获取状态记录文本中状态正常信息的条数,并基于状态正常信息的条数和第一预设时长生成测试时长;测试平台运行待修正程序,以判断待修正程序是否出现运行故障,其中,待修正程序的运行时长为测试时长;若是,测试平台生成测试日志,并将待修正程序的源代码发送至调试终端;若否,执行所述调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码的步骤。4.根据权利要求2所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,所述系
统还包括与所述调试终端通信连接的且基于Zynq的测试平台;测试平台运行有并行测试进程;所述调试终端获取输入的与待修正程序对应的修正后程序,之后还包括:调试终端将修正后程序的源代码发送至测试平台;并行测试进程将修正后程序的源代码按照功能拆分为不同的独立程序模块;并行测试进程分别且同步对不同的独立程序模块进行测试运行,并判断各独立程序模块是否均运行正常;若是,执行所述调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码的步骤;若否,并行测试进程将出现运行故障的独立程序模块的源代码发送至调试终端。5.根据权利要求4所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,所述测试平台包括测试内存;所述并行测试进程分别且同步对不同的独立程序模块进行测试运行...

【专利技术属性】
技术研发人员:朱斌林
申请(专利权)人:湖南博匠信息科技有限公司
类型:发明
国别省市:

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

1