MCU异常恢复方法技术

技术编号:37177652 阅读:6 留言:0更新日期:2023-04-20 22:45
MCU异常恢复方法,本发明专利技术包括下述步骤:(1)MCU正常工作状态下,按照预设流程对看门狗模块执行喂狗操作,将MCU的指令数据按时间分组,对分组形成的指令组按组进行备份,备份仅保存当前指令组以及当前指令组以前的预定组数的指令组;所备份的指令数据包括写数据类型标识符、写数据地址、写数据地址保存的原始数据和指令地址;(2)当看门狗未在预定时间内获得喂狗信号,看门狗发出复位信号,并停止备份;(3)MCU复位后,读取备份指令并执行,直至执行完所有的备份指令后,进入正常工作状态,返回步骤(1)。本发明专利技术可以提升MCU在特殊环境下工作的效率。的效率。的效率。

【技术实现步骤摘要】
MCU异常恢复方法


[0001]本专利技术属于芯片设计领域,尤其指一种MCU正常工作备份,MCU跑飞后自动恢复的方法和结构。

技术介绍

[0002]MCU,全名为Micro Control Unit,即微控制器,可以根据不同的设计提供对应的控制动作。
[0003]看门狗(Watch Dog Timer)本质上是一个计时器,通常具有固定的定时时间,当定时时间计满(溢出)时,电路就产生复位信号或中断信号。程序正常运行时,在小于定时时间间隔内,单片机向看门狗输出一个信号用于刷新定时器,即喂狗,使得定时器处于不断重新定时的过程中,这样看门狗就不会产生复位信号。当程序因出现干扰“跑飞”时,单片机无法刷新定时器,就可以通过看门狗溢出产生复位信号或中断信号使单片机复位或中断,由中断处理程序使其返回到起始点,以使程序恢复正常运行。
[0004]当MCU工作在特殊环境下受到干扰导致某条指令的执行出现错误,现有的看门狗复位功能是使程序回到最开始的起点,导致之前执行的数据结果丢失,而有的数据是一次性的难以复现的,因此可能会造成较大的损失,并且从头重新开始会浪费一定时间,对任务的执行造成影响。

技术实现思路

[0005]本专利技术所要解决的技术问题是,提供一种高效率的MCU异常恢复方法。
[0006]本专利技术解决所述技术问题采用的技术方案是,MCU异常恢复方法,其特征在于,包括下述步骤:
[0007](1)MCU正常工作状态下,按照预设流程对看门狗模块执行喂狗操作,将MCU的指令数据按时间分组,对分组形成的指令组按组进行备份,备份仅保存当前指令组以及当前指令组以前的预定组数的指令组;所备份的指令数据包括写数据类型标识符、写数据地址、写数据地址保存的原始数据和指令地址(PC);
[0008](2)当看门狗未在预定时间内获得喂狗信号,看门狗发出复位信号,并停止备份;
[0009](3)MCU复位后,读取备份指令并执行,直至执行完所有的备份指令后,进入正常工作状态,返回步骤(1)。
[0010]进一步的,所述写数据类型标识符用于区分寄存器数据和存储器数据。
[0011]所述步骤(1)中,通过设置断点,按照指令所在断点区域进行分组。
[0012]所备份的指令数据的类型仅为写入指令。
[0013]所述步骤(3)中,自最新的备份指令起,向各条指令的写数据地址所指的存储器或寄存器写入对应原始数据,直至完成备份指令中最旧指令的原始数据写入。
[0014]本专利技术提供了一种用于实现MCU正常工时备份、在跑飞时自动恢复的方法,在MCU正常工作时,自动切换备份断点,跑飞后看门狗发出复位信号随后该结构进行备份数据的
输出用以MCU恢复。通过本专利技术提供的技术方案,实现在MCU因受到干扰跑飞情况下自动恢复到断点处继续运行程序的功能,避免从头开始浪费时间与部分重要的数据丢失而造成损失,从而提高了MCU在特殊工作环境下程序执行的连续性与工作的稳定性。
[0015]当MCU工作在特殊环境下受到干扰导致某条指令的执行出现错误,现有的看门狗复位功能是使程序回到最开始的起点,导致之前执行的数据结果丢失,花费较多时间重启,在特殊工作环境下会造成更大的损失。本专利技术可以使MCU回退到设定的断点处而不必从头重新开始执行,从而提升MCU在特殊环境下工作的效率。
附图说明
[0016]图1为本专利技术实现MCU跑飞后恢复结构的框图;
[0017]图2为本专利技术实现的结构需要MCU输出的备份数据格式示意图;
[0018]图3为实施例1的流程图;
[0019]图4为实施例1备份数据示例图;
[0020]图5为整体的输入输出信号示意图。
具体实施方式
[0021]本专利技术所称的原始数据和旧数据的含义是相同的,都是指执行某一条写指令以前存储器或寄存器内保存的数据,将要执行的写指令会对其进行改写。
[0022]本专利技术提出的一种实现MCU跑飞后恢复的方法,对于MCU的结构没有特殊要求,从结构上,本专利技术的结构包括:一个存储器地址管理模块,一个存储模块,一个时间设置模块,一个用于断点切换的计时模块,一个看门狗模块。地址管理模块用于控制将备份数据写入的地址以及实现不同备份的断点之间的切换;存储模块用于存储MCU的备份数据;断点切换的计时模块输出脉冲信号至地址管理模块以切换断点;时间设置模块用于设置看门狗模块的喂狗间隔以及断点切换的时间间隔。
[0023]如图1所示,图1中res_timer对应于前述断点切换的计时模块,ram_ctrl对应于前述存储器地址管理模块,Ram对应于前述存储模块,set_reg对应于前述时间的设置模块,wdt对应于前述看门狗模块。
[0024]图五为该结构整体的输入输出信号,该结构通过图五中信号与MCU进行交互实现MCU跑飞后恢复的功能。
[0025]图1中,以下信号为从MCU输出到该结构的信号:
[0026]clk:mcu输出的时钟;rst:系统复位信号;res_ctrl_i:高启动备份模块,低关闭模块;Set_en:设置时间参数,备份时间间隔与喂狗最大时间间隔都是此参数;Data_i:16位数据输入,在data_i_en为高时数据有效;data_i_en:输入数据有效标志;serv_i:wdt喂狗信号;wr_done:mcu在接收到rst_o后,停止继续执行指令,在发出最后一次备份数据写时拉高Wr_done表示写结束。
[0027]图1中,以下信号为该结构输出到MCU的信号:
[0028]data_o:16位数据输出;data_o_en:输出数据有效;rst_wdt:看门狗复位信号;end_flag:备份完成信号,模块重新启动可拉低该信号。
[0029]下面说明图1中该结构内部地址管理模块(ram_ctrl)的信号:
[0030]地址管理模块(ram_ctrl)输入信号为:wr_done为高时地址切换到读ram的地址;data_i_en为高时表示输入数据有效;data_i表示输入的数据;clk为时钟输入;rst为1时地址管理模块复位;en为高时模块启动工作。
[0031]下面说明图1中该结构内部断点切换的计时模块(res_timer)的信号:clk为时钟输入;rst为1时计时模块复位;timer_en为1时模块使能开始计时;timer_flag为计时满发出的脉冲信号。
[0032]下面说明图1中该结构内部时间设置模块(set_reg)的信号:clk为时钟输入;rst为1时计时模块复位;set_num为输入的设置时间间隔;set_en为高一定时间输入的设置数据有效;timer_num为设置成功的时间。
[0033]下面说明图1中该结构内部存储模块(RAM)的信号:clk为时钟输入;rst为1时计时模块复位;addr_o为地址管理模块输入到存储器的地址信号;wr_en为地址管理模块输入到存储器的写使能信号;rd_en地址管理模块输入到存储器的读使能信号;dat本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.MCU异常恢复方法,其特征在于,包括下述步骤:(1)MCU正常工作状态下,按照预设流程对看门狗模块执行喂狗操作,将MCU的指令数据按时间分组,对分组形成的指令组按组进行备份,备份仅保存当前指令组以及当前指令组以前的预定组数的指令组;所备份的指令数据包括写数据类型标识符、写数据地址、写数据地址保存的原始数据和指令地址;(2)当看门狗未在预定时间内获得喂狗信号,看门狗发出复位信号,并停止备份;(3)MCU复位后,读取备份指令并执行,直至执行完所有的备份指令后,进入正常工作状态,返回步骤(1)。2.如权利...

【专利技术属性】
技术研发人员:杨志明胡志刚要志礼石云波
申请(专利权)人:成都蜀郡微电子有限公司
类型:发明
国别省市:

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

1