CN115629916A - 一种基于Zynq的业务程序故障恢复方法 - Google Patents

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

Info

Publication number
CN115629916A
CN115629916A CN202211661442.1A CN202211661442A CN115629916A CN 115629916 A CN115629916 A CN 115629916A CN 202211661442 A CN202211661442 A CN 202211661442A CN 115629916 A CN115629916 A CN 115629916A
Authority
CN
China
Prior art keywords
program
zynq
operating system
memory
platform
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.)
Granted
Application number
CN202211661442.1A
Other languages
English (en)
Other versions
CN115629916B (zh
Inventor
朱斌林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Bojiang Information Technology Co Ltd
Original Assignee
Hunan Bojiang Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Bojiang Information Technology Co Ltd filed Critical Hunan Bojiang Information Technology Co Ltd
Priority to CN202211661442.1A priority Critical patent/CN115629916B/zh
Publication of CN115629916A publication Critical patent/CN115629916A/zh
Application granted granted Critical
Publication of CN115629916B publication Critical patent/CN115629916B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种基于Zynq的业务程序故障恢复方法
技术领域
本发明涉及Zynq故障恢复技术领域,具体涉及一种基于Zynq的业务程序故障恢复方法。
背景技术
目前,Zynq平台在工作过程中若出现PS端的操作系统崩溃卡死情况时,无法判断崩溃卡死是由操作系统本身故障还是其运行的业务程序出现故障而导致的,进而无法进行针对性的故障恢复以重启操作系统,则只能通过人工现场调试来恢复操作系统,效率低下且费时费力,大大降低了Zynq平台的运行稳定性。
发明内容
本发明的主要目的是提供一种基于Zynq的业务程序故障恢复方法,旨在解决Zynq平台在工作过程中若出现PS端的操作系统崩溃卡死情况时,无法判断崩溃卡死是由操作系统本身故障还是其运行的业务程序出现故障而导致的问题。
本发明提出的技术方案为:
一种基于Zynq的业务程序故障恢复方法,应用于Zynq应用系统;所述系统包括Zynq平台,以及与所述Zynq平台通信连接的单片机;所述Zynq平台包括彼此通信连接的PS端和PL端;所述方法,包括:
PS端的操作系统正常启动后,基于操作系统自动运行业务程序;
操作系统每隔第一预设时长生成并发送心跳信号至单片机;
业务程序生成状态记录文本并存储于PL端,并每隔第一预设时长于状态记录文本写入一次状态正常信息,其中,状态正常信息用于表述业务程序运行状态正常;
当单片机在上一次接收到心跳信号的第一预设时长后未接收到心跳信号时,等待第二预设时长,根据等待的第二预设时长内是否接收到心跳信号判断操作系统是否崩溃卡死,其中,第二预设时长大于第一预设时长;
当操作系统崩溃卡死时,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电;
嵌入式固定程序读取状态记录文本,以判断状态记录文本中上一次应该写入状态正常信息的时间点是否写入了状态正常信息;
若是,通过单片机切换Zynq平台的上电电平以启动PS端的操作系统;
若否,嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行,然后执行所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统的步骤。
优选的,所述系统还包括与Zynq平台远程通信连接的调试终端;所述嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行,之后还包括:
嵌入式固定程序将被注释的业务程序标记为待修正程序,并将待修正程序的源代码发送至调试终端;
调试终端获取输入的与待修正程序对应的修正后程序的源代码;
调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码;
执行所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统的步骤。
优选的,所述系统还包括与所述调试终端通信连接的且基于Zynq的测试平台;所述调试终端获取输入的与待修正程序对应的修正后程序的源代码,之后还包括:
调试终端将修正后程序的源代码发送至测试平台;
单片机获取PL端的状态记录文本,并获取状态记录文本中状态正常信息的条数,并基于状态正常信息的条数和第一预设时长生成测试时长;
测试平台运行待修正程序,以判断待修正程序是否出现运行故障,其中,待修正程序的运行时长为测试时长;
若是,测试平台生成测试日志,并将待修正程序的源代码发送至调试终端;
若否,执行所述调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码的步骤。
优选的,所述系统还包括与所述调试终端通信连接的且基于Zynq的测试平台;测试平台运行有并行测试进程;所述调试终端获取输入的与待修正程序对应的修正后程序,之后还包括:
调试终端将修正后程序的源代码发送至测试平台;
并行测试进程将修正后程序的源代码按照功能拆分为不同的独立程序模块;
并行测试进程分别且同步对不同的独立程序模块进行测试运行,并判断各独立程序模块是否均运行正常;
若是,执行所述调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码的步骤;
若否,并行测试进程将出现运行故障的独立程序模块的源代码发送至调试终端。
优选的,所述测试平台包括测试内存;所述并行测试进程分别且同步对不同的独立程序模块进行测试运行,并判断各独立程序模块是否均运行正常,包括:
并行测试进程将测试内存确定多个不同的测试空间,其中,测试空间的数量和独立程序模块的数量一致;
并行测试进程将独立程序模块和测试空间建立对应关系;
并行测试进程确定各测试空间的容量值;
并行测试进程分别且同步对不同的独立程序模块进行测试运行,且各独立程序模块运行过程中所需要读写的数据文件均存入对应的测试空间。
优选的,所述并行测试进程确定各测试空间的容量值,包括:
单片机获取业务程序在PS端基于操作系统运行后产生的业务数据;
单片机将业务数据拆分为多个子业务数据,其中,子业务数据的数量和独立程序模块的数量一致,子业务数据和独立程序模块一一对应,且各子业务数据均是由对应的独立程序模块运行而产生;
单片机生成各独立程序模块对应的数据比例值,并将数据比例值发送至测试平台;其中,数据比例值为各独立程序模块对应的子业务数据的大小值除以业务数据的大小值;
并行测试进程基于数据比例值确定各独立程序模块所对应的测试空间的容量值,其中,各独立程序模块所对应的测试空间的容量值为对应的数据比例值乘以测试内存的总容量。
优选的,所述系统还包括与Zynq平台通信连接的非易失存储器;所述PS端设置有第一存储器;所述当操作系统崩溃卡死时,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电,之后还包括:
嵌入式固定程序扫描第一存储器,以判断第一存储器内是否存储有业务程序运行产生的业务数据;
当第一存储器内存储有业务程序运行产生的业务数据时,嵌入式固定程序将业务数据复制写入非易失存储器。
优选的,所述系统还包括与Zynq平台通信连接的管理终端;所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统,之后还包括:
嵌入式固定程序获取PS端在过去预设时间段内运行产生的日志文件,其中,PS端的操作系统在运行过程中产生的日志文件存储至第一存储器;
嵌入式固定程序分析日志文件,以判断过去预设时间段内,PS端的运行内存的平均占用率是否高于预设值;
若是,嵌入式固定程序生成用于反馈PS端运行内存不足的提示信息,并将提示信息发送至管理终端。
优选的,所述第一存储器内存储有内核启动文件;所述PL端设置有第二存储器;所述第二存储器存储有内核启动文件的镜像文件;所述方法,还包括:
PS端的操作系统正常启动后,操作系统执行系统备份进程,以将当前时刻下第一存储器内存储的内核启动文件作为新的镜像文件复制写入所述第二存储器,以替换所述第二存储器中原有的内核启动文件的镜像文件;
所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统,包括:
嵌入式固定程序将第二存储内存储的内核启动文件的镜像文件写入所述第一存储器,以替换第一存储内存储的内核启动文件;
通过单片机切换Zynq平台的上电电平以基于第一存储器内存储的内核启动文件启动PS端的操作系统。
优选的,还包括:
若PS端的操作系统无法正常启动,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电;
嵌入式固定程序将第二存储器内存储的内核启动文件的镜像文件写入所述第一存储器,以替换第一存储内存储的内核启动文件;
通过单片机切换Zynq平台的上电电平以基于第一存储器内存储的内核启动文件启动PS端的操作系统。
通过上述技术方案,能实现以下有益效果:
本发明提出的基于Zynq的业务程序故障恢复方法,能够判断PS端的曹操作系统出现崩溃卡死是由操作系统本身故障还是其运行的业务程序出现故障而导致,进而进行针对性的恢复措施;操作系统正常启动后,每隔第一预设时长生成并发送心跳信号至单片机,且业务程序生成状态记录文本并存储于PL端,并每隔第一预设时长于状态记录文本写入一次状态正常信息;通过接收心跳信号来判断操作系统是否崩溃,进而通过状态记录文本来判断操作系统的崩溃是否由业务程序引起,若不是由业务程序引起,直接重启PS端的操作系统,若是由业务程序引起,则注释掉业务程序的自动运行代码,然后再重启PS端的操作系统,免去了通过人工现场调试来恢复操作系统的繁琐操作,大大提升了Zynq平台的运行稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明提出的一种基于Zynq的业务程序故障恢复方法第一实施例的流程图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提出一种基于Zynq的业务程序故障恢复方法。
如附图1所示,在本发明提出的一种基于Zynq的业务程序故障恢复方法的第一实施例中,本基于Zynq的业务程序故障恢复方法应用于Zynq应用系统;所述系统包括Zynq平台,以及与所述Zynq平台通信连接的单片机;所述Zynq平台包括彼此通信连接的PS端(即Processing System,中文名:处理系统)和PL端(即Programmable Logic,中文名:可编程逻辑);本实施例包括如下步骤:
步骤S110:PS端的操作系统正常启动后,基于操作系统自动运行业务程序。
步骤S120:操作系统每隔第一预设时长(例如30秒)生成并发送心跳信号至单片机。
步骤S130:业务程序生成状态记录文本并存储于PL端,并每隔第一预设时长于状态记录文本写入一次状态正常信息,其中,状态正常信息用于表述业务程序运行状态正常。
步骤S140:当单片机在上一次接收到心跳信号的第一预设时长后未接收到心跳信号时,等待第二预设时长(例如1分钟),根据等待的第二预设时长内是否接收到心跳信号判断操作系统是否崩溃卡死,其中,第二预设时长大于第一预设时长。
具体的,即若操作系统正常运行,则会自动启动业务程序,同时每隔30S生成并发送心跳信号至单片机;还会生成状态记录文本,并每隔30S于状态记录文本写入一次状态正常信息。本实施例中,状态记录文本为readme.txt;状态正常信息为字符串0x10。
具体的,若单片机在上一次接收到心跳信号后的30秒后没有再次接收到心跳信号,说明PS端的操作系统处于异常状态(否则操作系统应该准时发送心跳信号至单片机),若在等待第二预设时长后仍然没有接收到心跳信号,则说明操作系统已经处于未响应的状态(奔溃卡死),需要采取应对措施。
步骤S150:当操作系统崩溃卡死时,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电。
具体的,操作系统崩溃卡死后,首先启动PL端烧录的嵌入式固定程序,然后控制PS端掉电,以便于或许重启PS端。
步骤S160:嵌入式固定程序读取状态记录文本,以判断状态记录文本中上一次应该写入状态正常信息的时间点是否写入了状态正常信息。
具体的,这里的状态记录文本中上一次应该写入状态正常信息的时间点如果写入了状态正常信息,说明业务程序没有出现故障,则可推定操作系统崩溃是由操作系统本身的故障而导致的;若这里的状态记录文本中上一次应该写入状态正常信息的时间点没有写入状态正常信息,说明业务程序的运行出现了故障,则可推定操作系统崩溃是由业务程序的故障而导致的。
若是,步骤S170:通过单片机切换Zynq平台的上电电平以启动PS端的操作系统。
若否,步骤S180:嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行,然后执行步骤S170。
具体的,若操作系统崩溃是由业务程序的故障而导致的,故嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行,从而避免PS端的操作系统再次崩溃。
本发明提出的基于Zynq的业务程序故障恢复方法,能够判断PS端的曹操作系统出现崩溃卡死是由操作系统本身故障还是其运行的业务程序出现故障而导致,进而进行针对性的恢复措施;操作系统正常启动后,每隔第一预设时长生成并发送心跳信号至单片机,且业务程序生成状态记录文本并存储于PL端,并每隔第一预设时长于状态记录文本写入一次状态正常信息;通过接收心跳信号来判断操作系统是否崩溃,进而通过状态记录文本来判断操作系统的崩溃是否由业务程序引起,若不是由业务程序引起,直接重启PS端的操作系统,若是由业务程序引起,则注释掉业务程序的自动运行代码,然后再重启PS端的操作系统,免去了通过人工现场调试来恢复操作系统的繁琐操作,大大提升了Zynq平台的运行稳定性。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第二实施例中,基于第一实施例,所述系统还包括与Zynq平台远程通信连接的调试终端(例如个人PC);步骤S180中所述嵌入式固定程序注释掉业务程序的自动运行代码,以使PS端的操作系统重新启动后,业务程序不再自动运行的步骤,之后还包括如下步骤:
步骤S210:嵌入式固定程序将被注释的业务程序标记为待修正程序,并将待修正程序的源代码发送至调试终端。
步骤S220:调试终端获取输入的与待修正程序对应的修正后程序的源代码。
步骤S230:调试终端将修正后程序的源代码发送至Zynq平台的PS端,以替换待修正程序的源代码。
执行步骤S170。
具体的,确定了是因业务程序导致操作系统奔溃后,则需要对业务程序进行修正;故通过调试终端来对业务程序进行修正,并将修正后程序替换待修正程序,以再次执行业务应用。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第三实施例中,基于第二实施例,所述系统还包括与所述调试终端通信连接的且基于Zynq的测试平台;步骤S220,之后还包括如下步骤:
步骤S310:调试终端将修正后程序的源代码发送至测试平台。
步骤S320:单片机获取PL端的状态记录文本,并获取状态记录文本中状态正常信息的条数,并基于状态正常信息的条数和第一预设时长生成测试时长。
具体的,最新的状态记录文本中状态正常信息的条数乘以第一预设时长即是操作系统上次正常运行的时长,基于状态正常信息的条数和第一预设时长生成测试时长的具体方案为:若操作系统正常运行的时长小于第三预设时长(例如1天),则测试时长等于操作系统正常运行的时长,若操作系统正常运行的时长大于或等于第三预设时长,则测试时长等于第三预设时长。
步骤S330:测试平台运行待修正程序,以判断待修正程序是否出现运行故障,其中,待修正程序的运行时长为测试时长。
若是,执行步骤S340:测试平台生成测试日志,并将待修正程序的源代码发送至调试终端。
具体的,若是,说明测试不通过,则测试平台生成测试日志,并将待修正程序的源代码发送至调试终端,以再次进行修改。
若否,执行步骤S750:所述调试终端将待修正程序对应的修正后程序发送至Zynq平台的PS端,以替换待修正程序的步骤。
具体的,若否,说明测试通过,则执行步骤S230。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第四实施例中,基于第二实施例,所述系统还包括与所述调试终端通信连接的且基于Zynq的测试平台;测试平台运行有并行测试进程;步骤S220,之后还包括如下步骤:
步骤S410:调试终端将修正后程序的源代码发送至测试平台。
步骤S420:并行测试进程将修正后程序的源代码按照功能拆分为不同的独立程序模块。
步骤S430:并行测试进程分别且同步对不同的独立程序模块进行测试运行,并判断各独立程序模块是否均运行正常。
具体的,即并行测试进程先将修正后程序的源代码按照功能拆分为不同的独立程序模块,然后再同步对各独立程序模块进行测试,并判断各独立程序模块是否均运行正常,这样可以大大减少对修正后程序的测试时长,提升测试效率。
若是,执行步骤S230。
若否,执行步骤S440:并行测试进程将出现运行故障的独立程序模块的源代码发送至调试终端。
具体的,若否,则直接将出现运行故障的独立程序模块的源代码发送至调试终端,这样也便于管理人员快速知晓修正后程序的哪里独立程序模块出现了问题,从而提升程序修正效率。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第五实施例中,基于第四实施例,所述测试平台包括测试内存;步骤S430,包括如下步骤:
步骤S510:并行测试进程将测试内存确定多个不同的测试空间,其中,测试空间的数量和独立程序模块的数量一致。
步骤S520:并行测试进程将独立程序模块和测试空间建立对应关系。
步骤S530:并行测试进程确定各测试空间的容量值。
步骤S540:并行测试进程分别且同步对不同的独立程序模块进行测试运行,且各独立程序模块运行过程中所需要读写的数据文件均存入对应的测试空间。
具体的,本实施例的目的在于针对各独立测试单元分配独立的内存空间,并将各独立程序模块运行过程中所需要读写的数据文件均存入对应的测试空间,这样能够保证各独立程序模块测试所需的数据之间互不干扰,从而保证各独立程序模块的测试能够稳定进行。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第六实施例中,基于第五实施例,步骤S530,包括如下步骤:
步骤S610:单片机获取业务程序在PS端基于操作系统运行后产生的业务数据。
步骤S620:单片机将业务数据拆分为多个子业务数据,其中,子业务数据的数量和独立程序模块的数量一致,子业务数据和独立程序模块一一对应,且各子业务数据均是由对应的独立程序模块运行而产生。
具体的,因业务程序在运行后会产生业务数据,但基于不同的独立程序模块,会产生不同的子业务数据。
步骤S630:单片机生成各独立程序模块对应的数据比例值,并将数据比例值发送至测试平台;其中,数据比例值为各独立程序模块对应的子业务数据的大小值除以业务数据的大小值。
步骤S640:并行测试进程基于数据比例值确定各独立程序模块所对应的测试空间的容量值,其中,各独立程序模块所对应的测试空间的容量值为对应的数据比例值乘以测试内存的总容量。
具体的,本实施例给出了确定各测试空间的容量值的具体方案,因子业务数据是对应的独立程序模块运行后产生的,那么子业务数据的大小能够反映独立程序模块进行测试时所需要的测试内存的容量大小,则直接将各独立程序模块所对应的测试空间的容量值确定为对应的数据比例值乘以测试内存的总容量。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第七实施例中,基于第一实施例,所述系统还包括与Zynq平台通信连接的非易失存储器(例如机械硬盘)步骤S150,之后还包括如下步骤:
步骤S710:嵌入式固定程序扫描第一存储器,以判断第一存储器内是否存储有业务程序运行产生的业务数据。
步骤S720:当第一存储器内存储有业务程序运行产生的业务数据时,嵌入式固定程序将业务数据复制写入非易失存储器。
具体的,本实施例的目的在于当PS端的操作系统崩溃后,通过嵌入式固定程序将业务数据复制写入非易失存储器,从而保证业务数据的安全性。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第八实施例中,基于第七实施例,所述系统还包括与Zynq平台通信连接的管理终端;步骤S170,之后还包括:
步骤S810:嵌入式固定程序获取PS端在过去预设时间段(例如7天)内运行产生的日志文件,其中,PS端的操作系统在运行过程中产生的日志文件存储至第一存储器。
步骤S820:嵌入式固定程序分析日志文件,以判断过去预设时间段内,PS端的运行内存的平均占用率是否高于预设值。
具体的,这里的预设值优选为80%。
若是,执行步骤S830:嵌入式固定程序生成用于反馈PS端运行内存不足的提示信息,并将提示信息发送至管理终端。
具体的,若过去预设时间段内,PS端的运行内存的平均占用率高于预设值,说明PS端的运行内存的空间不足,这可能是导致操作系统出现故障而崩溃的原因,则直接生成用于反馈PS端运行内存不足的提示信息,并将提示信息发送至管理终端,以便于提醒管理人员扩大PS端的运行内存。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第九实施例中,基于第七实施例,所述第一存储器内存储有内核启动文件;所述PL端设置有第二存储器;所述第二存储器存储有内核启动文件的镜像文件;本实施例还包括如下步骤:
步骤S910:PS端的操作系统正常启动后,操作系统执行系统备份进程,以将当前时刻下第一存储器内存储的内核启动文件作为新的镜像文件复制写入所述第二存储器,以替换所述第二存储器中原有的内核启动文件的镜像文件。
具体的,系统备份进程用于将当前时刻下第一存储器内存储的内核启动文件复制写入所述第二存储器,以覆盖第二存储器内存储的内核启动文件的镜像文件。
步骤S170:包括如下步骤:
步骤S920:嵌入式固定程序将第二存储内存储的内核启动文件的镜像文件写入所述第一存储器,以替换第一存储内存储的内核启动文件。
步骤S930:通过单片机切换Zynq平台的上电电平以基于第一存储器内存储的内核启动文件启动PS端的操作系统。
具体的,因第二存储器内存储是上次PS端的操作系统正常启动后复制写入的内核启动文件,即说明第二存储器内存储的内核启动文件是能够正常启动PS端的操作系统的,但本次PS端的操作系统出现了崩溃卡死现象,说明此时PS端的第一存储器内存储的内核启动文件可能已经损坏,故为了正常重启PS端的操作系统,则通过嵌入式固定程序将第二存储器内存储的内核启动文件的镜像文件写入所述第一存储器,以替换第一存储器内存储的内核启动文件。替换内核启动文件后,即可正常启动PS端的操作系统,从而实现PS端的操作系统的稳定快速重启。
本实施例中,每次PS端的操作系统正常启动后,都会执行系统备份进行,即将第二存储器中的内核启动文件的镜像文件替换为此刻PS端的第一存储器内存储的内核启动文件;这样能够保证第二存储器中始终存储有PS端最近一次正常启动操作系统时所对应的内核启动文件,若PS端的操作系统出现崩溃卡死的情况,则直接启动PL端的嵌入式固定程序,从而将第二存储器中存储的内核启动文件还原写入第一存储器中,然后基于第一存储器中的内核启动文件即可重新启动PS端的操作系统,免去了人工现场调试以恢复操作系统的繁琐操作,大大提升了Zynq平台的运行稳定性。
在本发明提出的一种基于Zynq的业务程序故障恢复方法的第十实施例中,基于第九实施例,本实施例还包括如下步骤:
步骤S1010:若PS端的操作系统无法正常启动,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电。
步骤S1020:嵌入式固定程序将第二存储器内存储的内核启动文件的镜像文件写入所述第一存储器,以替换第一存储内存储的内核启动文件。
步骤S1030:通过单片机切换Zynq平台的上电电平以基于第一存储器内存储的内核启动文件启动PS端的操作系统。
本实施例的目的在于当操作系统无法正常启动时,直接将第二存储器内存储的内核启动文件的镜像文件写入所述第一存储器,以替换第一存储内存储的内核启动文件,然后再基于第一存储器内存储的内核启动文件启动PS端的操作系统,这样能够保证操作系统正常启动。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

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的业务程序故障恢复方法,其特征在于,所述测试平台包括测试内存;所述并行测试进程分别且同步对不同的独立程序模块进行测试运行,并判断各独立程序模块是否均运行正常,包括:
并行测试进程将测试内存确定多个不同的测试空间,其中,测试空间的数量和独立程序模块的数量一致;
并行测试进程将独立程序模块和测试空间建立对应关系;
并行测试进程确定各测试空间的容量值;
并行测试进程分别且同步对不同的独立程序模块进行测试运行,且各独立程序模块运行过程中所需要读写的数据文件均存入对应的测试空间。
6.根据权利要求5所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,所述并行测试进程确定各测试空间的容量值,包括:
单片机获取业务程序在PS端基于操作系统运行后产生的业务数据;
单片机将业务数据拆分为多个子业务数据,其中,子业务数据的数量和独立程序模块的数量一致,子业务数据和独立程序模块一一对应,且各子业务数据均是由对应的独立程序模块运行而产生;
单片机生成各独立程序模块对应的数据比例值,并将数据比例值发送至测试平台;其中,数据比例值为各独立程序模块对应的子业务数据的大小值除以业务数据的大小值;
并行测试进程基于数据比例值确定各独立程序模块所对应的测试空间的容量值,其中,各独立程序模块所对应的测试空间的容量值为对应的数据比例值乘以测试内存的总容量。
7.根据权利要求1所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,所述系统还包括与Zynq平台通信连接的非易失存储器;所述PS端设置有第一存储器;所述当操作系统崩溃卡死时,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电,之后还包括:
嵌入式固定程序扫描第一存储器,以判断第一存储器内是否存储有业务程序运行产生的业务数据;
当第一存储器内存储有业务程序运行产生的业务数据时,嵌入式固定程序将业务数据复制写入非易失存储器。
8.根据权利要求7所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,所述系统还包括与Zynq平台通信连接的管理终端;所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统,之后还包括:
嵌入式固定程序获取PS端在过去预设时间段内运行产生的日志文件,其中,PS端的操作系统在运行过程中产生的日志文件存储至第一存储器;
嵌入式固定程序分析日志文件,以判断过去预设时间段内,PS端的运行内存的平均占用率是否高于预设值;
若是,嵌入式固定程序生成用于反馈PS端运行内存不足的提示信息,并将提示信息发送至管理终端。
9.根据权利要求7所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,所述第一存储器内存储有内核启动文件;所述PL端设置有第二存储器;所述第二存储器存储有内核启动文件的镜像文件;所述方法,还包括:
PS端的操作系统正常启动后,操作系统执行系统备份进程,以将当前时刻下第一存储器内存储的内核启动文件作为新的镜像文件复制写入所述第二存储器,以替换所述第二存储器中原有的内核启动文件的镜像文件;
所述通过单片机切换Zynq平台的上电电平以启动PS端的操作系统,包括:
嵌入式固定程序将第二存储内存储的内核启动文件的镜像文件写入所述第一存储器,以替换第一存储内存储的内核启动文件;
通过单片机切换Zynq平台的上电电平以基于第一存储器内存储的内核启动文件启动PS端的操作系统。
10.根据权利要求9所述的一种基于Zynq的业务程序故障恢复方法,其特征在于,还包括:
若PS端的操作系统无法正常启动,通过单片机切换Zynq平台的上电电平以启动PL端烧录的嵌入式固定程序,并控制PS端掉电;
嵌入式固定程序将第二存储器内存储的内核启动文件的镜像文件写入所述第一存储器,以替换第一存储内存储的内核启动文件;
通过单片机切换Zynq平台的上电电平以基于第一存储器内存储的内核启动文件启动PS端的操作系统。
CN202211661442.1A 2022-12-23 2022-12-23 一种基于Zynq的业务程序故障恢复方法 Active CN115629916B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211661442.1A CN115629916B (zh) 2022-12-23 2022-12-23 一种基于Zynq的业务程序故障恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211661442.1A CN115629916B (zh) 2022-12-23 2022-12-23 一种基于Zynq的业务程序故障恢复方法

Publications (2)

Publication Number Publication Date
CN115629916A true CN115629916A (zh) 2023-01-20
CN115629916B CN115629916B (zh) 2023-03-14

Family

ID=84910953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211661442.1A Active CN115629916B (zh) 2022-12-23 2022-12-23 一种基于Zynq的业务程序故障恢复方法

Country Status (1)

Country Link
CN (1) CN115629916B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968756A (zh) * 2010-09-29 2011-02-09 航天东方红卫星有限公司 一种基于fpga的星载计算机自主切机系统
CN104331341A (zh) * 2014-11-24 2015-02-04 中国航空工业集团公司洛阳电光设备研究所 一种基于fpga的故障恢复方法
US20150262633A1 (en) * 2014-03-12 2015-09-17 Futurewei Technologies, Inc. Dual-port ddr4-dimms of sdram and nvram for ssd-blades and multi-cpu servers
US20190296964A1 (en) * 2018-03-22 2019-09-26 Tata Consultancy Services Limited Exactly-once transaction semantics for fault tolerant fpga based transaction systems
CN110830285A (zh) * 2018-08-09 2020-02-21 塔塔咨询服务有限公司 用于fpga中间件框架的基于消息的通信和故障恢复的方法和系统
CN112328396A (zh) * 2020-11-09 2021-02-05 西安电子科技大学 基于任务等级的动态自适应sopc容错方法
CN112667564A (zh) * 2020-12-30 2021-04-16 湖南博匠信息科技有限公司 一种Zynq平台记录管理方法及系统
CN214045653U (zh) * 2020-12-02 2021-08-24 天津光电通信技术有限公司 一种光信号汇聚处理设备中主控备份设备
CN114610551A (zh) * 2022-03-07 2022-06-10 北京计算机技术及应用研究所 一种基于fpga故障检测的双机热备系统的实现方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968756A (zh) * 2010-09-29 2011-02-09 航天东方红卫星有限公司 一种基于fpga的星载计算机自主切机系统
US20150262633A1 (en) * 2014-03-12 2015-09-17 Futurewei Technologies, Inc. Dual-port ddr4-dimms of sdram and nvram for ssd-blades and multi-cpu servers
CN104331341A (zh) * 2014-11-24 2015-02-04 中国航空工业集团公司洛阳电光设备研究所 一种基于fpga的故障恢复方法
US20190296964A1 (en) * 2018-03-22 2019-09-26 Tata Consultancy Services Limited Exactly-once transaction semantics for fault tolerant fpga based transaction systems
CN110830285A (zh) * 2018-08-09 2020-02-21 塔塔咨询服务有限公司 用于fpga中间件框架的基于消息的通信和故障恢复的方法和系统
CN112328396A (zh) * 2020-11-09 2021-02-05 西安电子科技大学 基于任务等级的动态自适应sopc容错方法
CN214045653U (zh) * 2020-12-02 2021-08-24 天津光电通信技术有限公司 一种光信号汇聚处理设备中主控备份设备
CN112667564A (zh) * 2020-12-30 2021-04-16 湖南博匠信息科技有限公司 一种Zynq平台记录管理方法及系统
CN114610551A (zh) * 2022-03-07 2022-06-10 北京计算机技术及应用研究所 一种基于fpga故障检测的双机热备系统的实现方法

Also Published As

Publication number Publication date
CN115629916B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
CN111143132B (zh) 一种bios恢复方法、装置、设备及可读存储介质
CN100492305C (zh) 一种计算机系统的快速恢复方法及设备
CN107918568B (zh) 一种防止Linux系统重启失败的方法
US20210382789A1 (en) Method for protecting system from being powered off during upgrade and terminal device
CN101834976A (zh) 使用3段式引导升级启动技术的机顶盒启动和升级方法
CN111026581A (zh) 应用程序的修复方法及装置、系统、存储介质、电子装置
CN115629916B (zh) 一种基于Zynq的业务程序故障恢复方法
CN111698558A (zh) 电视软件升级方法、电视终端及计算机可读存储介质
CN101826040A (zh) 一种存储设备自动检测及修复的方法和系统
CN101340675A (zh) 一种实现移动终端备份和恢复的方法及装置
CN109405175B (zh) 一种故障清除方法、装置、存储介质、设备机组及终端
CN114124684B (zh) 一种运用u盘实现零接触全自动部署网元的方法
CN115314361A (zh) 一种服务器集群管理方法及其相关组件
CN115562900A (zh) Amd服务器系统安装断电处理方法、装置、设备及介质
CN111209143B (zh) 嵌入式系统的恢复方法、装置、嵌入式设备及存储介质
CN114296827A (zh) 数据文件处理方法、装置、设备及存储介质
JPH09138769A (ja) ソフトウェア配布システム及びソフトウェア配布方法
CN112084159A (zh) 一种基于蓝牙通信的文件同步系统和同步方法
CN111427721A (zh) 异常恢复方法及装置
CN111190627A (zh) 系统升级方法及装置
CN113032182B (zh) 一种计算机系统异常恢复的方法和设备
JP3087650B2 (ja) 自動復電方式
CN114064807B (zh) 用户系统及其数据提供方法
JP2021150672A (ja) 通信装置、情報処理方法、およびシステム
JP2005231187A (ja) 印刷指示装置、印刷装置、印刷データのバックアップシステムおよび方法

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
GR01 Patent grant
GR01 Patent grant