显示终端的故障回溯方法、显示终端及可读存储介质与流程

文档序号:15850599发布日期:2018-11-07 09:49阅读:142来源:国知局
显示终端的故障回溯方法、显示终端及可读存储介质与流程

本发明涉及故障检测技术领域,尤其涉及一种显示终端的故障回溯方法、一种计算机可读存储介质以及一种显示终端。

背景技术

嵌入式系统目前已经广泛应用于各类智能显示终端,如电视机,其中有很大一部分是linux操作系统。由于数量庞大,当这些系统出现异常故障的时候,采集故障信息是一件非常困难的事情,尤其对偶尔出现的异常、或者是异常复位、任务死锁之类的信息收集更加棘手。

现有技术中,由于显示终端的操作系统一般通过wi-fi连接互联网,所以通常利用网络服务器对事件信息进行实时采集或进行监控。但弊端在于当显示终端数量庞大的时候,服务器端的数据压力非常大,无法实时汇总分析成千上万的在线设备,造成数据量低,或实时性低的结果,难以捕捉稍纵即逝的故障的事件信息;且出现异常时,可能因为断网,从而采集不到故障的事件信息。

另外,还可以在显示终端内添加额外的硬件模块,或者利用显示终端的flash闪存来实时捕获异常信息,同时生成记录文件,并进行滚动式采集记录。这种方式数据不易丢失,可靠性高,实时性好;但需要增加额外的硬件成本,且flash器件不利于长时间反复冲刷,否则将大幅降低flash闪存的寿命;该方式通常只在高端设备中使用,且还需要考虑空间和散热。



技术实现要素:

本发明的主要目的在于提供一种显示终端的故障回溯方法,旨在解决现有技术中利用网络服务器采集或监控事件信息。但服务器端可能因数据压力过大或断网,难以采集到事件信息,数据量低,实时性低。

为实现上述目的,本发明提供一种显示终端的故障回溯方法,包括以下步骤:在显示终端的物理内存中划分一部分区域定义为裸区,用于记录并存储事件信息;获取所述裸区内的事件信息,所述裸区内末尾位置的所述事件信息为非复位信息时,则判定所述显示终端故障;判定所述显示终端故障时,调用所述裸区中记录并存储的事件信息并保存至闪存中以实现故障回溯。

优选地,所述在显示终端的物理内存中划分一部分区域定义为裸区,用于记录并存储事件信息的步骤包括:在所述物理内存的内核部分中,对预设区域不进行虚拟地址的分配,并将所述预设区域定义为裸区。

优选地,所述在显示终端的物理内存中划分一部分区域定义为裸区,用于记录并存储事件信息的步骤之后,还包括以下步骤:判断所述裸区中的起始位置处是否存在标记;当存在标记时,则判定所述系统为热启动,并调用所述裸区中的内容;当不存在标记时,则判定所述系统为冷启动,并在所述起始位置处补上标记。

优选地,所述当存在标记时,则判定所述系统为热启动,并调用所述裸区中的内容的步骤,或所述当不存在标记时,则判定所述系统为冷启动,并在所述起始位置处补上标记的步骤之后,还包括:遍历所述裸区中的事件信息,并在所述裸区中的末尾位置进行标记。

优选地,所述遍历所述裸区中的事件信息,并在所述裸区中的末尾位置进行标记的步骤之后,还包括:将所述事件信息写入所述裸区或从所述裸区中读取所述事件信息。

优选地,所述将所述事件信息写入所述裸区或从所述裸区中读取所述事件信息的步骤包括:在所述事件信息被写入时,获取写入所述事件信息时的时间戳,并将所述时间戳加入到所述事件信息中;在所述事件信息被读取时,解析所述事件信息,并获得所述事件信息的内容及所述时间戳。

优选地,所述将所述事件信息写入所述裸区或从所述裸区中读取所述事件信息的步骤之后,还包括以下步骤:当所述裸区的内存存满时,删除所述裸区中起始位置的事件信息,以在所述末尾位置存储新的事件信息;当所述裸区的内存未存满时,则将所述末尾位置往后顺移一位,以存储新的事件信息。

优选地,所述当所述裸区的内存存满时,删除所述裸区中起始位置的事件信息,以在所述末尾位置存储新的事件信息的步骤,或所述当所述裸区的内存未存满时,则将所述末尾位置往后顺移一位,以存储新的事件信息的步骤之前,还包括:将所述裸区内预设部分的事件信息保存到闪存中。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有故障检测程序,所述故障检测程序被处理器执行时实现如上述中任一项所述的显示终端的故障回溯方法的步骤。

此外,为实现上述目的,本发明还提供一种显示终端,所述显示终端上带有如上所述的计算机可读存储介质,所述计算机可读存储介质上存储有故障检测程序,所述故障检测程序被处理器执行时实现如上述中任一项所述的显示终端的故障回溯方法的步骤。

本发明提供的显示终端的故障回溯方法、显示终端及计算机可读存储介质,通过在显示终端的物理内存中划分一部分区域定义为裸区,用于存储事件信息,再获取所述裸区内的事件信息,检测所述裸区内末尾位置的所述事件信息为非复位信息时,则判定所述显示终端故障。记录媒介为显示终端中的物理内存,通过线下采集事件信息,不依赖网络服务器,不会因断网而采集不到故障的事件信息;通过所述裸区记录或存储到的系统内所有软件行为或软件状态更加全面,不会因网络服务器数据压力过大遗漏各种细节,实现高精度监控及回溯。

附图说明

图1是本发明显示终端的故障回溯方法第一实施例的流程示意图;

图2是图1中步骤s10进一步细化的流程示意图;

图3是本发明显示终端的故障回溯方法第二实施例的流程示意图;

图4是本发明显示终端的故障回溯方法第三实施例的流程示意图;

图5是本发明显示终端的故障回溯方法第四实施例的流程示意图;

图6是本发明显示终端的故障回溯方法第五实施例的流程示意图;

图7是本发明显示终端的故障回溯方法第六实施例的流程示意图;

图8是图7中步骤s70进一步细化的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,本发明显示终端的故障回溯方法第一实施例的流程示意图,所述显示终端的故障回溯方法包括:

步骤s10,在显示终端的物理内存中划分一部分区域定义为裸区,用于存储事件信息;

本实施例以linux操作系统为例,显示终端启动时,在显示终端的物理内存处于映射的初始化阶段时,对物理内存进行划分。在所述物理内存中预留一部分区域,并将该区域定义为裸区,用于记录并存储显示终端中所有软件的操作行为痕迹及状态。在上述过程中,因为裸区内的存储空间有限,为了避免出现冗余信息,被记录的数据应该是精心设计的,例如,分别对memoryteststart(内存测试开启)和memorytestend(内存测试结束)的操作进行采集(append)时,就可以在所述裸区中留下运行痕迹并进行保存,类似于“黑匣子”的特性,只进不出。可以理解,任何进程中(无论是物理内存的内核部分还是用户部分)都可以在关键的程序位置调用append,append的响应速度非常快,因为所述裸区所在的物理内存是快速设备,不会出现诸如网络存储、flash写入等类似的慢速拥塞,所以在裸区空间合适的前提下,可以尽可能的append,捕捉详尽细节。

需要说明的是,本发明的技术方案同样适用在例如vxworks、qnx等嵌入式操作系统上,linux操作系统并不够成对本发明的限定。

步骤s20,获取所述裸区内的事件信息,所述裸区内末尾位置的所述事件信息为非复位信息时,则判定所述显示终端故障;

当裸区内记录事件信息的最后一条是一个复位信息时,那么说明之前是正常复位;反之,则说明之前是异常复位,即故障,该最后一条事件信息则类似于显示终端在异常复位之前的“临终遗言”。一般来讲,获取到“临终遗言”的价值是最大的,因为显示终端在进行“临终遗言”的操作时发生了异常复位,即故障。例如,启动时发现裸区中存在有效内容,并且在记录末尾没有复位消息,说明发生过异常复位,可进行dump操作,即将裸区内容保存到flash一次。只需要在发现异常时进行dump,如果记录到是正常复位,则不建议dump。避免对flash闪存进行反复冲刷,以达到延长flsha闪存的寿命的目的,降低设备成本。也不会造成flash写入等类似的慢速拥塞等。

步骤s30,判定所述显示终端故障时,调用所述裸区中记录并存储的事件信息并保存至闪存中以实现故障回溯;

当需要读取所有记录时,可以随时调用(dump)查看裸区中记录并存储的显示终端中所有软件的操作行为痕迹及状态。在上述过程中,因为物理内存在显示终端上电开机时不会被初始化,从而在所述裸区中保存的数据也同样不会被初始化,裸区内的记录也能够一直被保存;所以,当显示终端重新开机之后依然能够从裸区中看到显示终端上一次开机时的所有软件的操作行为痕迹及状态,以实现故障回溯。

在本实施例中通过在显示终端的物理内存中,建立一个用来存储系统事件信息的裸区,记录媒介为显示终端中的物理内存,通过线下采集事件信息,不依赖网络服务器,不会因断网而采集不到故障的事件信息;通过所述裸区记录或存储到的系统内所有软件行为或软件状态更加全面,不会因网络服务器数据压力过大遗漏各种细节,实现高精度监控及回溯。同时,本实施例中同样不依赖flash闪存来记录,而是通过物理内存来记录,显示终端挂死或复位时物理内存都不会初始化,从而裸区内的记录也能够一直被保存在必要时才将裸区内的记录保存到flash闪存中,方便调用查看,不会直接对flash闪存进行反复冲刷,延长flsha闪存的寿命;也无需增加额外的硬件模块,降低设备的成本。

进一步的,参照图2,所述在显示终端的物理内存中划分一部分区域定义为裸区,用于存储事件信息的步骤包括:

s11:在所述物理内存的内核部分中,对预设区域不进行虚拟地址的分配,并将所述预设区域定义为裸区;

在本实施例中,规划裸区空间时,由于flash闪存的“块写入”的特性,可以对裸区的内存空间取一个合适的值,使得裸区内存的空间是flash闪存块的整数倍,方便对flash闪存与裸区之间的配合进行调整。在上述过程中,因为裸区地址不直接对外映射,由内核部分单独提供对裸区的读写接口,因为单独从物理内存中隔离出的裸区,独立于内存管理之外,所以无法寻址访问,从而使得被其他软件进程意外踩踏的概率大大降低。

进一步的,参照图3,本发明显示终端的故障回溯方法第二实施例的流程示意图,本实施例基于上述图1所示的实施例,所述在显示终端的物理内存中划分一部分区域定义为裸区,用于存储事件信息的步骤之后,还包括以下步骤:

s40:判断所述裸区中的起始位置处是否存在标记;

s50:当存在标记时,则判定所述系统为热启动,并调用所述裸区中的内容;

s60:当不存在标记时,则判定所述系统为冷启动,并在所述起始位置处补上标记;

在本实施例中,显示终端启动时,检查裸区上的起始位置上是否存在标记。如果若第一次检测起始位置上没有标记,则判定显示终端为掉电复位或冷启动,此时裸区中记录的事件信息无参考价值,同时在起始位置上设置一个新的标记;如果第一次检测起始位置上有标记,则判定显示终端为异常复位或热启动,此时裸区中记录的事件信息具有参考价值,则对裸区中的内容进行dump操作,避免工作人员未及时查看裸区中记录的内容,导致裸区内存存满时将最早的记录删除。可以理解,本发明的技术方案同样适用于在其他关键位置处进行标记,例如在裸区的末尾位置进行标记等。例如,可以分别对其起始、末尾两个位置赋予特殊值0x5aa5。

需要说明的是,无论掉电复位、异常复位、冷启动或热启动,均不对裸区中的内容清零或初始化,保留里面原样数据。仅对一个或多个关键位置,例如起始位置或末尾位置做特殊标记。

进一步的,参照图4,本发明显示终端的故障回溯方法第三实施例的流程示意图,该实施例基于上述图3所示的实施例,所述当存在标记时,则判定所述系统为热启动,并调用所述裸区中的内容的步骤,或所述当不存在标记时,则判定所述系统为冷启动,并在所述起始位置处补上标记的步骤之后,还包括:

s70:遍历所述裸区中的事件信息,并在所述裸区中的末尾位置进行标记;

在本实施例中,遍历裸区中的事件信息,检查各个节点是否处于正常工作状态。同时在裸区中的末尾位置进行标记,末尾位置为裸区中记录的最后一条事件的后一个位置,当有新的信息事件被记录时,所述末尾位置则往后顺移一位。当末尾位置无法再后移时,表示裸区的内存空间已经存满,此时可以删除最早的一条事件信息以用于放出空间存储新的事件信息。

进一步的,参照图5,本发明显示终端的故障回溯方法第四实施例的流程示意图,该实施例基于上述图4所示的实施例,所述遍历所述裸区中的事件信息,并在所述裸区中的末尾位置进行标记的步骤之后,还包括:

s80:将所述事件信息写入所述裸区或从所述裸区中读取所述事件信息;

在本实施例中,将裸区设立在物理内存的内核部分,通过内核代码提供对所述裸区的read和write函数,以实现将事件信息写入所述裸区中或从所述裸区中读取事件信息,对外只提供append和dump接口。需要说明的是,整个显示终端的软件内,均可有条件调用裸区的append和dump接口,用于记录一些关键数据、操作流水等。

在系统正常运行后,任何进程中(无论用户还是内核)都可以在关键的程序位置调用append。例如,分别对memoryteststart(内存测试开启)和memorytestend(内存测试结束)的操作进行采集(append)时,就可以在所述裸区中留下运行痕迹并进行保存,类似于“黑匣子”的特性,只进不出。

在上述过程中,还可以对记录的事件信息进行转义,不使用文本记录方式,而使用数字记录,以实现节省裸区内存储空间的目的,待进行dump操作调用数据时,可借助于查表来翻译事件信息中的内容。

当需要读取所有记录时,可以随时调用dump。例如,启动时发现裸区中存在有效内容,并且在记录末尾没有复位消息,说明发生过异常复位,可进行dump操作,即将裸区内容保存到flash一次。只需要在发现异常时进行dump,如果记录到是正常复位,则不建议dump。避免对flash闪存进行反复冲刷,以达到延长flsha闪存的寿命的目的,降低设备成本。也不会造成flash写入等类似的慢速拥塞等。

在上述过程中,如果收到网络请求需要读取或调用裸区中记录的事件信息、或者研发人员从telnet终端请求读取或调用裸区中记录的事件信息,亦可发起dump操作。与前面不同的是,此时除了dump裸区内容之外,还可以查询flash,看是否还存有本次复位之前的历史记录,可以与本次dump所获得的事件信息一并返回。

进一步的,参照图6,所述将所述事件信息写入所述裸区或从所述裸区中读取所述事件信息的步骤包括:

s81:在所述事件信息被写入时,获取写入所述事件信息时的时间戳,并将所述时间戳加入到所述事件信息中;

s82:在所述事件信息被读取时,解析所述事件信息,并获得所述事件信息的内容及所述时间戳;

在本实施例中,可根据实际需要、以及裸区中存储空间大小限制,在记录事件信息时加入时间戳time,以便工作人员能够更加直观的看出显示终端在什么时间进行了什么操作,更加便捷。可以理解,当显示终端中如果获取不到time时,也可以用tick。

进一步的,参照图7,本发明显示终端的故障回溯方法第五实施例的流程示意图,该实施例基于上述图5所示的实施例,所述将所述事件信息写入所述裸区或从所述裸区中读取所述事件信息的步骤之后,还包括以下步骤:

s90:当所述裸区的内存存满时,删除所述裸区中起始位置的事件信息,以在所述末尾位置存储新的事件信息;

s100:当所述裸区的内存未存满时,则将所述末尾位置往后顺移一位,以存储新的事件信息;

在本实施例中,裸区的读写接口,按滚动机制设计,当裸区被写满时,可以自动剔除最早的数据,时刻保持整个裸区数据是最新的。例如,末尾位置为裸区中记录的最后一条事件的后一个位置,当有新的信息事件被记录时,所述末尾位置则往后顺移一位。当末尾位置无法再后移时,表示裸区的内存空间已经存满,此时可以删除最早的一条事件信息以用于放出空间存储新的事件信息,即直接覆盖最老的记录,实现循环刷写。在上述过程中,不用担心裸区被append了多少次,因为会自动追加在最后,如果空间被填满,会自动删除最早的记录。

可以理解,还可以直接将裸区中记录的事件信息dump出来,写入一次flash闪存,然后直接清空裸区,重新记录。因为裸区中记录的事件信息全部被保存到了flash闪存中,该方式能够更加稳定的对显示终端中的事件信息进行保存。如果平时刷写裸区比较频繁,可按滚动机制设计;如果很少写裸区,则可将裸区中记录的事件信息dump出来,写入一次flash,然后直接清空裸区,重新记录。

进一步的,参照图8,本发明显示终端的故障回溯方法第六实施例的流程示意图,该实施例基于上述图7所示的实施例,

所述当所述裸区的内存存满时,删除所述裸区中起始位置的事件信息,以在所述末尾位置存储新的事件信息的步骤,或所述当所述裸区的内存未存满时,则将所述末尾位置往后顺移一位,以存储新的事件信息的步骤之前,还包括:

s110:将所述裸区内预设部分的事件信息保存到闪存中。

在本实施例中,当系统即将关机、或临近重启时,也需要append记录一次,将裸区中存储的事件信息存写入flash,用于标记本次运行,已经正常结束,同时避免了对flash造成反复冲刷。

此外,本发明还提供一种计算机可读存储介质所述计算机可读存储介质上存储有故障检测程序,所述故障检测程序被处理器执行时实现如上述中任一项所述的显示终端的故障回溯方法的步骤。该存储了故障检测程序的计算机可读存储介质可以用于各种智能家电中,并检测不同家电中的故障信息。

此外,本发明还提供一种显示终端,所述显示终端上带有如上所述的计算机可读存储介质,所述计算机可读存储介质上存储有故障检测程序,所述故障检测程序被处理器执行时实现如上述中任一项所述的显示终端的故障回溯方法的步骤。可以理解,所述显示终端可以为电视机,或例如手机、电脑等其他智能显示终端。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台显示终端(可以是电视机,手机,计算机,或者其他带显示功能的网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1