一种预测狗复位发生的方法、微控制器及嵌入式系统的制作方法

xiaoxiao2020-11-9  12

一种预测狗复位发生的方法、微控制器及嵌入式系统的制作方法
【技术领域】
[0001]本发明实施例涉及通信技术领域,尤其涉及一种预测狗复位发生的方法、微控制器及嵌入式系统。
【背景技术】
[0002]随着嵌入式设备的迅猛发展,嵌入式软件的复杂度也在不断上升,看门狗和大容量的数据存储器件被广泛使用。看门狗是用于监视和管理单片机、数字信号处理器(DSP,Digital Signal Processor)等微控制器(MCU, Micro Control Unit)的复位电路,MCU 正常运行时,通过系统软件隔一定时间给看门狗一个脉冲信号,俗称“喂狗”。如果超过了规定时间看门狗没有收到“喂狗”信号,看门狗输出一个脉冲给MCU的复位引脚,使MCU复位。
[0003]双倍速率同步动态随机存储器(DDR,Double Data Rate)存储数据时,需要MCU对DDR实时提供时钟进行数据刷新。但是在狗复位过程中,MCU不会提供时钟给DDR,DDR存储的数据在狗复位期间存在数据丢失的风险,导致狗复位前后DDR数据可能会发生跳变,导致MCU运行的程序的异常行为。

【发明内容】

[0004]鉴于现有技术的以上缺陷,本发明提供一种预测狗复位发生的方法、微控制器及嵌入式系统,解决了现有技术中,由于狗复位期间MCU不会提供时钟给DDR,导致的狗复位前后DDR数据可能会发生跳变的问题。
[0005]本发明实施例的第一方面提供了一种预测狗复位发生的方法,包括:
[0006]当微控制器MCU运行程序时,MCU根据运行的所述程序进入中断处理程序确定将要发生狗复位;
[0007]所述MCU将双倍速率同步动态随机存储器DDR切换到自刷新模式,并等待发生所述狗复位。
[0008]结合本发明实施例的第一方面,在本发明实施例的第一方面的第一种实施方式中,所述中断处理程序为定时器中断处理程序,所述MCU根据运行的所述程序进入中断处理程序确定将要发生狗复位包括:
[0009]所述MCU根据第一周期周期性进入定时器中断处理程序,所述第一周期为定时器中断的时间周期;
[0010]判断所述定时器中断处理程序中标识的值,所述标识用于指示是否将要发生狗复位,所述标识的值包括第一数值,所述第一数值用于指示将要发生狗复位;
[0011]若所述标识的值为所述第一数值,则所述MCU确定将要发生狗复位。
[0012]结合本发明实施例的第一方面的第一种实施方式,在本发明实施例的第一方面的第二种实施方式中,所述标识的值还包括第二数值,所述第二数值用于指示计算不清狗时间;
[0013]判断所述定时器中断处理程序中的标识的值之后还包括:
[0014]若所述标识的值为所述第二数值,则所述MCU计算不清狗时间;
[0015]判断所述不清狗时间是否大于或者等于预设值;其中,所述不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻,所述预设值为第二周期减去所述第一周期和阈值之和,所述第二周期为发生狗复位的时间周期;
[0016]若所述不清狗时间大于或者等于所述预设值,则设置所述标识的值为所述第一数值,并确定再一次进入所述定时器中断处理程序时将要发生狗复位;
[0017]若所述不清狗时间小于所述预设值,则确定不是将要发生狗复位,并将所述不清狗时间进行累计。
[0018]本发明实施例的第二方面提供了一种微控制器MCU,所述MCU包括:
[0019]运行单元,用于运行程序;
[0020]确定单元,用于根据运行的所述程序进入中断处理程序确定将要发生狗复位;
[0021]切换单元,用于将双倍速率同步动态随机存储器DDR切换到自刷新模式,并等待发生所述狗复位。
[0022]结合本发明实施例的第二方面,在本发明实施例的第二方面的第一种实施方式中,包括:所述中断处理程序为定时器中断处理程序,所述运行单元,还用于根据第一周期周期性进入定时器中断处理程序,其中,所述第一周期为定时器中断的时间周期;
[0023]所述确定单元包括:
[0024]第一判断子单元,用于判断所述定时器中断处理程序中标识的值,所述标识用于指示是否将要发生狗复位,所述标识的值包括第一数值,所述第一数值用于指示将要发生狗复位;
[0025]第一确定子单元,用于在所述标识的值为第一数值时,确定将要发生狗复位。
[0026]结合本发明实施例的第二方面的第一种实施方式,在本发明实施例的第二方面的第二种实施方式中,包括:所述标识的值还包括第二数值,所述第二数值用于指示计算不清狗时间;
[0027]所述确定单元还包括:
[0028]计算子单元,用于在所述标识的值为所述第二数值时,计算不清狗时间;
[0029]第二判断子单元,用于判断所述不清狗时间是否大于或者等于预设值;其中,所述不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻,所述预设值为第二周期减去所述第一周期和阈值之和,所述第二周期为发生狗复位的时间周期;
[0030]设置确定子单元,用于在所述不清狗时间大于或者等于所述预设值时,设置所述标识的值为所述第一数值,并确定再一次进入所述定时器中断处理程序时将要发生狗复位;
[0031]累计确定子单元,用于在所述不清狗时间小于所述预设值时,确定不是将要发生狗复位,并将所述不清狗时间进行累计。
[0032]本发明实施例的第三方面提供了一种嵌入式系统,所述系统包括:
[0033]微控制器MCU、双倍速率同步动态随机存储器DDR和看门狗;
[0034]所述MCU分别与所述看门狗和所述DDR相连;
[0035]所述MCU包括:运行单元、确定单元和切换单元;
[0036]所述运行单元,用于运行程序;
[0037]所述确定单元,用于根据运行的所述程序进入中断处理程序确定将要发生狗复位;
[0038]所述切换单元,用于将双倍速率同步动态随机存储器DDR切换到自刷新模式,并等待发生所述狗复位。
[0039]结合本发明实施例的第三方面,在本发明实施例的第三方面的第一种实施方式中,包括:所述中断处理程序为定时器中断处理程序,所述运行单元,还用于根据第一周期周期性进入定时器中断处理程序,其中,所述第一周期为定时器中断的时间周期;
[0040]所述MCU中所述确定单元包括:第一判断子单元和第一确定子单元;
[0041]所述第一判断子单元,用于判断所述定时器中断处理程序中标识的值,所述标识用于指示是否将要发生狗复位,所述标识的值包括第一数值,所述第一数值用于指示将要发生狗复位;
[0042]所述第一确定子单元,用于在所述标识的值为第一数值时,确定将要发生狗复位。
[0043]结合本发明实施例的第三方面的第一种实施方式,在本发明实施例的第三方面的第二种实施方式中,包括:所述标识的值还包括第二数值,所述第二数值用于指示计算不清狗时间;
[0044]所述MCU中所述确定单元还包括:计算子单元、第二判断子单元、设置确定子单元和累计确定子单元;
[0045]所述计算子单元,用于在所述标识的值为所述第二数值时,计算不清狗时间;
[0046]所述第二判断子单元,用于判断所述不清狗时间是否大于或者等于预设值;其中,所述不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻,所述预设值为第二周期减去所述第一周期和阈值之和,所述第二周期为发生狗复位的时间周期;
[0047]所述设置确定子单元,用于在所述不清狗时间大于或者等于所述预设值时,设置所述标识的值为所述第一数值,并确定再一次进入所述定时器中断处理程序时将要发生狗复位;
[0048]所述累计确定子单元,用于在所述不清狗时间小于所述预设值时,确定不是将要发生狗复位,并将所述不清狗时间进行累计。
[0049]从以上技术方案可以看出,本发明实施例具有以下优点:
[0050]本发明提供一种预测狗复位发生的方法、微控制器及嵌入式系统,MCU根据运行的程序进入中断处理程序确定将要发生狗复位,然后将DDR切换到自刷新模式,并等待发生狗复位,这样可以预测到将要发生狗复位,然后在发生狗复位之前将DDR切换到自刷新模式,能够保证在狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
【附图说明】
[0051]图1为本发明实施例中预测狗复位发生的方法一个实施例示意图;
[0052]图2为本发明实施例中预测狗复位发生的方法另一实施例示意图;
[0053]图3为本发明实施例中预测狗复位发生的方法另一实施例示意图;
[0054]图4为本发明实施例中MCU —个实施例示意图;
[0055]图5为本发明实施例中MCU另一实施例示意图;
[0056]图6为本发明实施例中嵌入式系统一个实施例示意图。
【具体实施方式】
[0057]本发明实施例提供了一种预测狗复位发生的方法、微控制器及嵌入式系统,能够保证狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
[0058]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施 例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0059]图1为本发明实施例中预测狗复位发生的方法一个实施例,该实施例包括:
[0060]101、当MCU运行程序时,MCU根据运行的该程序进入中断处理程序确定将要发生狗复位;
[0061]本实施例中,中断处理程序包括:异常中断处理程序和定时器中断处理程序,MCU可以根据运行的程序进入中断处理程序确定将要发生狗复位(watchdog reset),在实际应用中,当MCU接收到异常中断请求后,MCU运行的程序进入异常中断处理程序,当MCU接收到定时器中断请求,MCU运行的程序进入定时器中断处理程序。
[0062]102、MCU将DDR切换到自刷新模式,并等待发生狗复位。
[0063]本实施例中,在步骤101之后,即确定将要发生狗复位之后,MCU将DDR切换到自刷新模式,并等待发生狗复位,当DDR处于自刷新模式时,DDR供给自身时钟,以保持自身存储的数据不丢失,此时MCU不能访问DDR中存储的数据,在实际应用中,MCU直接跳转到MCU中随机访问内存(RAM,Random-Access Memory)上的程序,将DDR切换到自刷新模式,其中,MCU用于完成嵌入式系统的控制、通讯、命令解析及执行等操作,RAM是嵌入式系统程序的运行空间,位于MCU中。
[0064]进一步地,本实施例的方法还可以包括:当狗复位完成时,MCU将DDR切换回正常工作模式。
[0065]本实施例中,MCU根据运行的程序进入中断处理程序确定将要发生狗复位,然后将DDR切换到自刷新模式,并等待发生狗复位,这样可以预测到将要发生狗复位,然后在发生狗复位之前将DDR切换到自刷新模式,能够保证在狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
[0066]为了便于理解,下面以一具体实例对本发明实施例中的预测狗复位发生的方法进行描述,请参阅图2,当中断处理程序为定时器中断处理程序时,该实施例中预测狗复位发生的方法包括:
[0067]201、当MCU运行程序时,MCU根据第一周期周期性进入定时器中断处理程序;
[0068]202、判断该定时器中断处理程序中标识的值;
[0069]本实施例中,该第一周期为定时器中断的时间周期,当MCU运行程序时,MCU可以根据第一周期周期性进入定时器中断处理程序,该第一周期的数值不做限定,第一周期可以为几秒钟,也可以为几毫秒,还可以为几微秒,在实际应用中,在不影响MCU所在的系统功能的前提下,第一周期的数值越小越好,达到以毫秒或者微秒为单位,该标识用于指示是否将要发生狗复位,该标识的值包括第一数值和第二数值,该第一数值用于指示将要发生狗复位,在实际应用中,该标识的值不做限定,可以为数字、字母、或者字符串,本实施例以第一数值为TURE和第二数值为FLASE为例进行说明。
[0070]203、若判定的标识的值为第一数值时,则确定将要发生狗复位;
[0071]204、MCU将DDR切换到自刷新模式,并等待发生狗复位;
[0072]205、当狗复位完成时,MCU将DDR切换回正常工作模式。
[0073]本实施例中,若该标识的值为第一数值时,则该MCU可以确定将要发生狗复位,在实际应用中,该标识的值为TURE时,该MCU确定将要发生狗复位。
[0074]206、若标识的值为第二数值,则计算不清狗时间;
[0075]本实施例中,该第二数值用于指示计算不清狗时间,该不清狗时间是一个时间范围,不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻,在实际应用中,当MCU进入到定时器中断处理程序且满足标识的值为第二数值的条件时,MCU通过定时器中断处理程序可以确定最近一次清狗的时刻及确定当前执行计算不清狗时间的时刻,然后MCU通过定时器中断处理程序计算不清狗时间,例如,设定第二数值为FALSE,当确定的标识的值为FALSE时,MCU计算不清狗时间。
[0076]看门狗本身具有定时计数器功能,清狗是将看门狗的定时计数器重置为0,MCU可以根据预设的清狗操作进行清狗,例如,若发生狗复位的周期为3分钟,当MCU执行清狗时,将看门狗的定时计数器重置为0,此时看门狗的定时计数器需要重新从O开始累计到3分钟才会发生狗复位。
[0077]207、判断不清狗时间是否大于或者等于预设值,若大于或者等于预设值,则执行步骤208,若小于预设值,则执行步骤209 ;
[0078]208、设置标识的值为第一数值,并确定再一次进入定时器中断处理程序时将要发生狗复位;
[0079]209、确定不是将要发生狗复位,将不清狗时间进行累计。
[0080]本实施例中,在步骤206之后,判断算出的不清狗时间是否大于或者等于预设值,若该不清狗时间大于或者等于预设值,则设置标识的值为第一数值,并确定再一次进入定时器中断处理程序时将要发生狗复位,若不清狗时间小于预设值,则MCU确定不是将要发生狗复位,并将不清狗时间进行累计,其中,该预设值为该第二周期减去该第一周期和阈值之和,该第二周期为发生狗复位的时间周期,该标识的值还包括第一数值,该第一数值用于指示将要发生狗复位,本实施例中以第一数值为TRUE和第二数值为FLASE为进行说明,例如,算出的不清狗时间为Y,第二周期为X,第一周期为T0,阈值为Λ T,若Υ>=Χ-Τ0- Δ Τ,则将标识的值设置为TURE,若Υ〈Χ-Τ0- Δ Τ,则累计不清狗时间,直到Υ>=Χ-Τ0- Δ Τ。
[0081]由于本实施例中设置的是Υ>=Χ-Τ0-ΛΤ,所以将标识的值设置为TURE后,不会将DDR切换到自刷新模式,且MCU退出定时器中断处理程序,当时间又过了 TO时间之后,MCU再次进入定时器中断处理程序,此时判定标识的值为TURE,MCU才能将DDR切换到自刷新模式。
[0082]进一步地,当MCU设置标识的值为第一数值,并确定再一次进入定时器中断处理程序时将要发生狗复位之后,MCU可以重复执行上述实施例中步骤201-205。需要说明的是,本实施例中的阈值AT是为狗复位预留的时间窗,阈值的取值取决于MCU执行将DDR切换到自刷新模式的时间,由于MCU在将DDR切换到自刷新模式时,需要在定时器中断处理程序中运行使DDR处于自刷新模式的程序,预留时间窗的目的是确保DDR处于自刷新模式的程序之前不会发生狗复位。
[0083]本实施例中,若MCU运行的程序进入定时器中断处理程序,MCU判断定时器中断处理程序中的标识的值,若标识的值为第一数值,则确定将要发生狗复位,若标识的值为第二数值,则计算不清狗时间,并根据算出的不清狗时间与预设值的比较来确定是否对标识的值设置为第一数值,并确定再一次进入定时器中断处理程序时将要发生狗复位,这样可以预测到再次进入定时器中断处理程序时将要发生狗复位,然后在发生狗复位之前将DDR切换到自刷新模式,能够保证在狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
[0084]中断处理程序包括:异常中断处理程序和定时器中断处理程序,图3描述了 MCU运行的程序进入异常中断处理程序和定时器中断处理程序时预测狗复位发生的流程图,具体的,该实施例包括:
[0085]301、MCU 运行程序;
[0086]302、MCU判定运行的程序进入异常中断处理程序;
[0087]303、MCU确定将要发生狗复位;
[0088]304、MCU根据第一周期周期性进入定时器中断处理程序;
[0089]305、判断定时器中断处理程序中标识的值,若标识的值为第一数值,则执行步骤303,若标识的值为第二数值,则执行步骤306 ;
[0090]306、计算不清狗时间;
[0091]307、判断不清狗时间是否大于或者等于预设值,若不清狗时间大于或者等于预设值,则执行步骤308,若不清狗时间小于预设值,则执行步骤309 ;
[0092]308、设置标识的值为第一数值,并确定再一次进入定时器中断处理程序时将要发生狗复位;
[0093]309、确定不是将要发生狗复位,并将不清狗时间进行累计;
[0094]310、步骤303之后,MCU将DDR切换到自刷新模式,并等待发生狗复位。
[0095]需要说明的是,MCU在完成步骤308后,可以重复执行步骤304-305。
[0096]本实施例中,该预设值为第二周期减去第一周期和阈值之和,第一周期为定时器中断的时间周期,第二周期为发生狗复位的时间周期,阈值是为狗复位预留的时间窗,该标识用于指示是否将要发生狗复位,标识的值包括第一数值和第二数值,该第一数值用于指示将要发生狗复位,该第二数值用于指示计算不清狗时间。
[0097]设定异常中断处理程序为程序A,定时器中断处理程序为程序B,MCU将DDR切换到自刷新模式的程序为程序C,第一周期为T0,第二周期为X,阈值为△ T,累计的不清狗时间为Y,标识CFLAG的第一数值为TURE,标识CFLAG的第二数值为FLASE,初始状态CFLAG为FLASE。
[0098 ]第一步骤,MCU运行程序;
[0099]第二步骤,若MCU判定运行的程序进入程序A,则跳转到程序C,即在程序A中运行程序C以将DDR切换到自刷新模式,等待发生狗复位;
[0100]第三步骤,若MCU运行的程序进入程序B,判定程序B中CFLAG的值;
[0101]第四步骤,若CFLAG为TURE,则跳转到程序C,即在程序B中运行程序C以将DDR切换到自刷新模式,等待发生狗复位;
[0102]第五步骤,当狗复位完成后,MCU将DDR切换回正常工作模式;
[0103]第六步骤,若CFLAG为FLASE,则计算Y,并判断Y是否>=Χ_Τ0- Δ T ;
[0104]第七步骤,若Υ>=Χ-Τ0- Δ Τ,则将CFLAG设置为TURE ;若Υ〈Χ_Τ0- Δ Τ,则继续累计Y。
[0105]在第七步骤中将CFLAG设置为TURE之后,重复执行第三步骤到第五步骤。
[0106]本实施例中,MCU通过确定运行的程序进入异常中断处理程序还是进入定时器中断处理程序执行不同的操作来确定将要发生狗复位,然后将DDR切换到自刷新模式,并等待发生狗复位,这样可以预测到将要发生狗复位,然后在发生狗复位之前将DDR切换到自刷新模式,能够保证在狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
[0107]下面对用于执行上述预测狗复位发生的方法的本发明实施例的MCU进行说明,其基本逻辑结构参考图4,该实施例中的MCU包括:
[0108]运行单元401、确定单元402和切换单元403 ;
[0109]运行单元401,用于运行程序;
[0110]确定单元402,用于根据运行的程序进入中断处理程序确定将要发生狗复位;
[0111]切换单元403,用于将DDR切换到自刷新模式,并等待发生狗复位。
[0112]本实施例中,确定单元402根据运行的程序进入中断处理程序确定将要发生狗复位,然后切换单元403将DDR切换到自刷新模式,并等待发生狗复位,这样可以预测到将要发生狗复位,然后在发生狗复位之前将DDR切换到自刷新模式,能够保证在狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
[0113]下面以一具体实施例对MCU中包括的各个单元及元件的交互对MCU中的数据交互方式进行说明,请参阅图5,当中断处理程序为定时器中断处理程序时,该实施例中MCU包括:运行单元501、确定单元502和切换单元503 ;
[0114]确定单元502包括:第一判断子单元5021、第一确定子单元5022、
[0115]计算子单元5023、第二判断子单元5024、设置确定子单元5025、累计确定子单元5026。
[0116]运行单元501根据第一周期周期性进入定时器中断处理程序,其中该第一周期为定时器中断的时间周期,然后告知第一判断子单元5021已进入定时器中断处理程序。
[0117]第一判断子单元5021判断该定时器中断处理程序中标识的值,该标识用于指示是否将要发生狗复位,该标识的值包括第一数值,该第一数值用于指示将要发生狗复位,若标识的值为第一数值,则告知第一确定子单元5022,若标识的值为第二数值,则告知计算子单元5023。
[0118]第一确定子单元5022在接收到第一判断子单元5021判断结果为第一数值时,确定将要发生狗复位,然后告知切换单元503将要发生狗复位。
[0119]切换单元503将DDR切换到自刷新模式,并等待发生该狗复位,在实际应用中,当狗复位完成后,切换单元503还可以将DDR切换回正常工作模式。
[0120]计算子单元5023计算不清狗时间,然后将算出的结果发送至第二判断子单元5024,该不清狗时间是一个时间范围,不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻,在实际应用中,当运行单元501进入到定时器中断处理程序且满足标识的值为第二数值的条件时,运行单元501通过定时器中断处理程序可以确定最近一次清狗的时刻及确定当前执行计算不清狗时间的时刻,本实施例中以第一数值为TURE和第二数值为FALSE为例进行说明,例如,设定第二数值为FALSE,当标识的值为FALSE时,计算子单元5023计算不清狗时间。
[0121]第二判断子单元5024判断不清狗时间是否大于或者等于预设值,若不清狗时间大于或者等于预设值,则将判断结果告知设置确定子单元5025,若不清狗时间小于预设值,则将判断结果告知累计确定子单元5026,该预设值为第二周期减去第一周期和阈值之和,该第二周期为发生狗复位的时间周期。
[0122]若不清狗时间大于或者等于预设值,设置确定子单元5025设置标识的值为第一数值,并确定再一次进入该定时器中断处理程序时将要发生狗复位。
[0123]若不清狗时间小于预设值,累计确定子单元5026确定不是将要发生狗复位,并将该不清狗时间进行累计。
[0124]在实际应用中,算出的不清狗时间为Y,第二周期为X,第一周期为T0,阈值为Λ Τ,若Υ>=Χ-Τ0- Λ T,则将标识的值设置为第一数值,若Υ〈Χ-Τ0- Λ T,此时进行累计不清狗时间,直到 Υ>=Χ-Τ0-ΔΤο
[0125]由于本实施例中设置的是Υ>=Χ-Τ0-ΛΤ,所以将标识的值设置为TURE后,不会将DDR切换到自刷新模式,且运行单元501退出定时器中断处理程序,当时间又过了 TO时间之后,运行单元501再次进入定时器中断处理程序,若标识的值为TURE,MCU才能将DDR切换到自刷新模式。
[0126]需要说明的是,本实施例中的阈值ΛΤ是为狗复位预留的时间窗,阈值的取值取决于MCU执行将DDR切换到自刷新模式的时间,由于MCU在将DDR切换到自刷新模式时,需要在定时器中断处理程序中运行使DDR处于自刷新模式的程序,预留时间窗的目的是确保DDR处于自刷新模式的程序之前不会发生狗复位。
[0127]本实施例中,运行单元501根据第一周期周期性进入定时器中断处理程序,第一判断子单元5021判断定时器中断处理程序中标识的值,若标识的值为第一数值,则第一确定子单元5022确定将要发生狗复位,若标识的值为第二数值,则计算子单元5023计算不清狗时间,并通过第二判断子单元5024将算出的不清狗时间与预设值的比较来确定设置确定子单元5025是否对标识的值设置为第一数值,并确定再一次进入定时器中断处理程序时将要发生狗复位,这样可以预测到将要发生狗复位,然后在发生狗复位之前将DDR切换到自刷新模式,能够保证在狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
[0128]需要说明的是,在本发明实施例中,运行单元、确定单元、确定单元中子单元和切换单元的全部功能可以完全通过硬件来实现,即完全通过逻辑集成电路所执行的算法来实现。可选地,运行单元、确定单元、确定单元中子单元和切换单元的全部功能也可通过软件和硬件结合的方式实现,即所述逻辑集成电路可以在驱动软件的驱动下执行运算来完成所述功能。
[0129]下面对用于执行上述预测狗复位发生的方法的本发明实施例的嵌入式系统进行说明,其基本逻辑结构参考图6,本发明实施例中嵌入式系统一个实施例,该系统包括:MCU60UDDR602 和看门狗 603 ;
[0130]MCU601分别与看门狗603和DDR602相连;
[0131]MCU601包括:运行单元6011、确定单元6012和切换单元6013 ;
[0132]运行单元6011,用于运行程序;
[0133]确定单元6012,用于根据运行的该程序进入中断处理程序确定将要发生狗复位;
[0134]切换单元6013,用于将DDR切换到自刷新模式,并等待发生该狗复位。
[0135]可选地,当中断处理程序为定时器中断处理程序时,运行单元6011还用于根据第一周期周期性进入定时器中断处理程序;
[0136]MCU601中确定单元6012包括:第一判断子单元60121和第一确定子单元60122 ;
[0137]第一判断子单元60121,用于判断该定时器中断处理程序中标识的值,该标识用于指示是否将要发生狗复位,该标识的值包括第一数值,该第一数值用于指示将要发生狗复位;
[0138]第一确定子单元60122,用于在该标识的值为第一数值时,确定将要发生狗复位。
[0139]可选地,MCU601中确定单元6012还包括:计算子单元60123、第二判断子单元60124、设置确定子单元60125和累计确定子单元60126 ;
[0140]计算子单元60123,用于在该标识的值为该第二数值时,计算不清狗时间;
[0141]第二判断子单元60124,用于判断该不清狗时间是否大于或者等于预设值;
[0142]设置确定子单元60125,用于在该不清狗时间大于或者等于该预设值时,设置该标识的值为该第一数值,并确定再一次进入该定时器中断处理程序时将要发生狗复位;
[0143]累计确定子单元60126,用于在不清狗时间小于该预设值时,确定不是将要发生狗复位,并将该不清狗时间进行累计。
[0144]进一步地,第一周期为定时器中断的时间周期,第二周期为 发生狗复位的时间周期;不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻;预设值为该第二周期减去该第一周期和阈值之和;标识用于指示是否将要发生狗复位,该标识包括:第一数值和第二数值,该第一数值用于指示将要发生狗复位,该第二数值用于指示将要发生狗复位。
[0145]本实施例中,MCU601根据运行的该程序进入中断处理程序确定将要发生狗复位,然后将DDR602切换到自刷新模式,并等待看门狗603发生狗复位,这样可以预测到将要发生狗复位,然后在发生狗复位之前将DDR切换到自刷新模式,能够保证在狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
[0146]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0147]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0148]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0149]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0150]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0151]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0152]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【主权项】
1.一种预测狗复位发生的方法,其特征在于,包括: 当微控制器MCU运行程序时,MCU根据运行的所述程序进入中断处理程序确定将要发生狗复位; 所述MCU将双倍速率同步动态随机存储器DDR切换到自刷新模式,并等待发生所述狗复位。
2.根据权利要求1所述的方法,其特征在于,所述中断处理程序为定时器中断处理程序,所述MCU根据运行的所述程序进入中断处理程序确定将要发生狗复位包括: 所述MCU根据第一周期周期性进入定时器中断处理程序,所述第一周期为定时器中断的时间周期; 判断所述定时器中断处理程序中标识的值,所述标识用于指示是否将要发生狗复位,所述标识的值包括第一数值,所述第一数值用于指示将要发生狗复位; 若所述标识的值为所述第一数值,则所述MCU确定将要发生狗复位。
3.根据权利要求2所述的方法,其特征在于,所述标识的值还包括第二数值,所述第二数值用于指示计算不清狗时间; 判断所述定时器中断处理程序中标识的值之后还包括: 若所述标识的值为所述第二数值,则所述MCU计算不清狗时间; 判断所述不清狗时间是否大于或者等于预设值;其中,所述不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻,所述预设值为第二周期减去所述第一周期和阈值之和,所述第二周期为发生狗复位的时间周期; 若所述不清狗时间大于或者等于所述预设值,则设置所述标识的值为所述第一数值,并确定再一次进入所述定时器中断处理程序时将要发生狗复位; 若所述不清狗时间小于所述预设值,则确定不是将要发生狗复位,并将所述不清狗时间进行累计。
4.一种微控制器MCU,其特征在于,所述MCU包括: 运行单元,用于运行程序; 确定单元,用于根据运行的所述程序进入中断处理程序确定将要发生狗复位; 切换单元,用于将双倍速率同步动态随机存储器DDR切换到自刷新模式,并等待发生所述狗复位。
5.根据权利要求4所述的MCU,其特征在于,所述中断处理程序为定时器中断处理程序,所述运行单元,还用于根据第一周期周期性进入定时器中断处理程序,其中,所述第一周期为定时器中断的时间周期; 所述确定单元包括: 第一判断子单元,用于判断所述定时器中断处理程序中标识的值,所述标识用于指示是否将要发生狗复位,所述标识的值包括第一数值,所述第一数值用于指示将要发生狗复位; 第一确定子单元,用于在所述标识的值为第一数值时,确定将要发生狗复位。
6.根据权利要求5所述的MCU,其特征在于,所述标识的值还包括第二数值,所述第二数值用于指示计算不清狗时间; 所述确定单元还包括: 计算子单元,用于在所述标识的值为所述第二数值时,计算不清狗时间; 第二判断子单元,用于判断所述不清狗时间是否大于或者等于预设值;其中,所述不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻,所述预设值为第二周期减去所述第一周期和阈值之和,所述第二周期为发生狗复位的时间周期; 设置确定子单元,用于在所述不清狗时间大于或者等于所述预设值时,设置所述标识的值为所述第一数值,并确定再一次进入所述定时器中断处理程序时将要发生狗复位;累计确定子单元,用于在所述不清狗时间小于所述预设值时,确定不是将要发生狗复位,并将所述不清狗时间进行累计。
7.一种嵌入式系统,其特征在于,所述系统包括: 微控制器MCU、双倍速率同步动态随机存储器DDR和看门狗; 所述MCU分别与所述看门狗和所述DDR相连; 所述MCU包括:运行单元、确定单元和切换单元; 所述运行单元,用于运行程序; 所述确定单元,用于根据运行的所述程序进入中断处理程序确定将要发生狗复位;所述切换单元,用于将双倍速率同步动态随机存储器DDR切换到自刷新模式,并等待发生所述狗复位。
8.根据权利要求7所述的系统,其特征在于,所述中断处理程序为定时器中断处理程序,所述运行单元,还用于根据第一周期周期性进入定时器中断处理程序,其中,所述第一周期为定时器中断的时间周期; 所述MCU中所述确定单元包括:第一判断子单元和第一确定子单元; 所述第一判断子单元,用于判断所述定时器中断处理程序中标识的值,所述标识用于指示是否将要发生狗复位,所述标识的值包括第一数值,所述第一数值用于指示将要发生狗复位; 所述第一确定子单元,用于在所述标识的值为第一数值时,确定将要发生狗复位。
9.根据权利要求8所述的系统,其特征在于,所述标识的值还包括第二数值,所述第二数值用于指示计算不清狗时间; 所述MCU中所述确定单元还包括:计算子单元、第二判断子单元、设置确定子单元和累计确定子单元; 所述计算子单元,用于在所述标识的值为所述第二数值时,计算不清狗时间; 所述第二判断子单元,用于判断所述不清狗时间是否大于或者等于预设值;其中,所述不清狗时间为从最近一次清狗的时刻到执行计算不清狗时间的时刻,所述预设值为第二周期减去所述第一周期和阈值之和,所述第二周期为发生狗复位的时间周期; 所述设置确定子单元,用于在所述不清狗时间大于或者等于所述预设值时,设置所述标识的值为所述第一数值,并确定再一次进入所述定时器中断处理程序时将要发生狗复位; 所述累计确定子单元,用于在所述不清狗时间小于所述预设值时,确定不是将要发生狗复位,并将所述不清狗时间进行累计。
【专利摘要】本发明提供一种预测狗复位发生的方法、微控制器及嵌入式系统,MCU根据运行的程序进入中断处理程序确定将要发生狗复位,然后将DDR切换到自刷新模式,并等待发生狗复位,这样可以预测到将要发生狗复位,然后在发生狗复位之前将DDR切换到自刷新模式,能够保证在狗复位期间DDR数据不会出现跳变,进而减少程序在运行时因数据变化而发生的异常行为。
【IPC分类】G06F1-24, G06F11-00
【公开号】CN104866051
【申请号】CN201410063269
【发明人】赵辰, 叶小康
【申请人】华为技术有限公司
【公开日】2015年8月26日
【申请日】2014年2月24日

最新回复(0)