在电子设备初始化期间检测错误的方法及装置的制作方法

文档序号:6568096阅读:364来源:国知局
专利名称:在电子设备初始化期间检测错误的方法及装置的制作方法
技术领域
本发明涉及电子装置初始化的领域,更准确地,涉及在嵌入到该装置 中的操作系统的初始化阶段期间发生的问题的检测。
背景技术
具有操作系统的电子装置的初始化方案一般如下所述在第一阶段,将系统内核载入内存并执行。该内核一般被设计为最小。它提供最小的、基本的功能例如内存管理器和任务调度器。该内核经常被 静态地设计以使其初始化和发起是可复制的。因此,除非出现硬件故障, 内核初始化是确信能够成功的。在第二阶段,发起特定数量的服务。这些服务提供给该系统更细致的功 能。它们由内核支持。这些服务提供例如,外围设备的管理、该装置与 外部世界的通信的层的任何必要的管理、输入/输出外围设备,网络等等。 这些服务还可以包括管理用户的喜好以及在该装置的先前的使用期间所存 储的配置参数的恢复以及涉及该装置的特殊目的的任何服务。这些服务的复杂性和用户的识别以及该装置的环境参数使确保该阶段 的成功变得困难得多。实际上,不能够检测所有的情况而且错误仍然会发 生。在第三阶段, 一旦构成系统的所有服务都被发起,应用程序也被发起。 该应用程序将最终确定在其环境下的装置的功能。该应用程序在完全的、 可运行的操作系统上发起。该系统一般允许校正在该应用程序中出现的错 误。经常地,重新发起该应用程序就足够了。由此我们可以理解最严重的错误是那些在第二阶段,即服务发起阶段所 发生的错误。存在一些方法尝试处理这些错误。例如,在个人计算机世界 里,系统一般提供几个发起模式,其中包括由发起最小化系统所组成的"无 差错,,模式。该最小化系统一般不尝试初始化服务,且提供给用户校正这 些服务的发起参数的界面。通过这种方式,当面临初始化错误时,用户能够校正错误的原因并恢复可用的装置。这种校正可直到完全替换系统。该 方法能够在计算机世界中正确发挥功能,但其需要用户具有一定的技术且 容忍这类问题。然而,在"普通公共"电子领域中,不会考虑应用相同的方法。而且, 普通公共装置的用户不愿意轻易接受装置故障。事实上,其习惯于一般不 发生故障的低复杂程度的装置。而且,也不能要求这样的用户拥有"手动" 校正潜在的问题所必须的技术。使之能够校正错误的第 一 个措施是更新系统的能力。对于许多装置都存 在该可能性。例如,可以与个人计算机相连接的装置经常能够由来自该计 算机的系统版本来更新。数字电视接收机也一般能够通过接收系统软件的新版本进行更新。该方法允许克服系统的设计错误或系统内存转储(memory dump)的损坏、或增加新的功能。 一般仅当满足特定数量的标准时才做出 开始下载操作的决定。这些标准中有是否存在新的驻留软件版本或检测到 装置中现有软件的已损坏版本。文献US6393585似乎公开了按照这样一种方法来发起终端。按照该文 献,在启动(startup)期间用户载入并发起(launch)第一应用程序,如果出 现问题,则其载入另一个应用程序。这样的方法不允许灵敏地处理启动问 题。另一个处理在普通公共装置中的错误的措施为重启装置的附加可能性。 这种重启操作可以为自动的或被用户的特定动作所控制。该重启措施允许 系统重发起且允许处理在使用装置其中所发生的问题。因此,可能还没有满足触发新软件版本的下载的标准,但系统服务的初 始化阶段导致了问题。在这种情况下,该问题驱使系统重启。然后会发生 都导致错误的一连串重启,并由此导致新的重启。发明内容本发明允许检测在电子装置驻留软件的发起阶段期间发生的问题,所述 发起阶段被分为几个步骤或模块。该检测通过使用在该阶段期间以及在发 起每个模块之前写入到非易失性存储器中的信息来进行。在成功的情况下,该信息随后被删除。因此在失败的情况下,在下次重启期间,可以使用该 信息来检测问题和相关的模块。因此对在启动期间可能发生的问题的检观'j的高精确度使用户受益。本发明涉及一种检测在具有永久存储器的电子装置启动期间发生的错 误的方法,该装置由驻留软件驱动,该方法包括至少以下步骤在第一次启动期间向所述装置存储器写入信息的至少一个步骤;在第二次启动期间,按照在第 一 次启动期间写入到存储器中的所述信,包、 检测在第 一次启动期间发生的错误的步骤。有利地,该启动处理包括连续发起多个模块且包括在每个模块被发起前 向存储器写入信息的步骤。按照一个特定实施例,该方法还包括 一旦驻留软件至少一部分的无错 发起完成就删除所述写入到存储器中的信息的步骤。按照一个特定实施例,所迷错误检测步骤通过检测在启动处理中写入到 存储器中的所述信息的存在来进行。按照一个特定实施例,该方法还包括在检测到至少一个先前启动发生 错误之后的警报的触发。按照一个特定实施例,该方法还包括当警报触发时,恢复所述装置的 至少 一 个参数的默认值的步骤。按照一个特定实施例,该方法还包括当警报触发时在该装置后续启动 期间禁止至少 一 个模块的发起的步骤。按照一个特定实施例,该方法还包括当警报触发时,导致驻留软件新 版本的下载的步骤。按照一个特定实施例,该方法还包括当警报触发时,导致为用户显示 信息的步骤。本发明还涉及一种电子装置,包括永久存储器、设计为控制该电子装置 的驻留软件、以及驻留软件发起设备,在所述装置启动时还包括在包含 连续发起多个模块的启动处理期间、在每个模块的发起之前将信息写入装 置存储器中的设备;以及按照在启动处理期间写入到存储器中的所述信息 检测在先前启动期间发生的错误的设备。按照一个特定实施例,该装置还包括在驻留软件的至少一部分的无错 发起完成时删除所述写入到存储器中的信息的设备。按照一个特定实施例,该装置还包括在检测到至少一个先前启动发生 错误之后触发警报的设备。按照一个特定实施例,该装置还包括当警报触发时重置所述装置的至少 一个参数的默认值的设备。按照一个特定实施例,该装置还包括当警报触发时在下一次装置启动期 间禁止至少一个模块的发起的设备。按照一个特定实施例,该装置还包括当警报触发时导致驻留软件新版本 的下载的设备D按照一个特定实施例,该装置还包括当警报触发时为用户显示信息的装置。


通过阅读下面的说明可以更好地理解本申请,并能够看出其他特定特征和优点,该说明参考附图图1示出了按照本发明实施例的方法的流程图;图2示出了按照本发明实施例的装置;图3示出了按照本发明实施例的装置的体系结构的例子;图4示出了按照本发明实施例的装置的软件的发起顺序的例子。
具体实施方式
将被描述的本发明的实施例可出现在数字电视解码器领域,但并不限制 在该领域。这些解码器负责接收和解码广播电视服务。这样的服务可以用 多种技术广播,例如卫星、电缆、电面波、和最近的类似因特网的计算机 网络。这些服务一般以数字数据流的形式进行广播,其中可能组合了若干 服务,且组合了每个服务的不同的成分。这些成分可以包括音频成分、视 频成分、和关于服务的信息。也可以在该流中找到用来显示电子节目指南 的信息> 交互应用的信息,和其他种类的信息。这些成分中的某些可被压 缩且该服务一般以其只能由被授权观看的人们使用的方式来编码。观看这 样的服务要求使用解码装置,其可以接收广播数字流、分离、解码、解压 缩、并同步不同的成分,以在例如电视上恢复它们。该解码器还必须能够 接收、存储、和显示数据与有关的节目例如节目指南、以及应用程序(例 如游戏等等)。图2示出了这样的设备的体系结构的例子。解码器自身以框2.1为轮廓。作为例子给出的解码器为通过计算机网络例如因特网接收服务的解码器。 因此,其通过以太网接口 2.7连接到调制解调器,例如使用电话线提供连接的DSL (数字用户线)2.2。所接收的数字流在处理器2.9的控制下通过总 线2.1之后被多路分配器2.12多路分解。随后音频和视频成分由解码器2.6 解码和/或解压缩。任何附加数据例如菜单由图形处理器2.8进行处理。来 自解码器2.6和图形处理器2.8的数据将由数字-模拟转换器2.4转换为音频 和视频信号。按照电视标准如PAL或NTSC产生这些信号2.5,以在电视机 2.3上显示。解码器由处理器2.9控制。该处理器运行存储在闪存2.10中的 操作系统。该闪存具有永久的特性,因此,在装置的电源关闭时,存储在 闪存内的信息被保持在存储器内。该系统使用RAM (随机访问存储器)作 为工作存储器。该种装置一般在软件层的控制下操作,图3示出了其体系结构的例子。 在该图中,解码器的硬件由框3.11表示。第一驱动层3.10使该硬件能够被 管理。系统内核3.2实现基本的系统机制,如任务管理器和调度器。解码器 与IP网络之间的通信由IP栈3.9管理。在系统内核之上实现特定数量的模 块,其中一些在IP通信层之上实现。非穷尽地,在这些模块中可以有SNMP (筒单网络管理协议)客户端3.4,其用于允许从中央控制台管理一组解码 器。还有更新管理器3.5,其使之能够通过下载新的软件部分来管理驻留软 件更新。另外,还有条件访问模块3.6,例如在支付电视报价的情景下,其 可用于检查用户确实被授权观看所接收的流。视频点播(VOD)模块3.7 允许对点播广播内容的访问进行控制。多播控制模块3.8负责管理在该模式 下的包括电视服务的流的接收。服务列表的控制模块3.3负责恢复和维护其 有权使用的服务的列表。因此这些模块提供一系列服务,这些服务在以下意义上使用系统内核的 功能,即它们通常被作为由内核管理和调度的任务发起。按照它们的需要, 它们使用IP通信层或硬件驱动。例如,访问控制模块使用芯片卡阅读器模 块驱动。总的说来,由应用程序3.1管理该装置,其目的在于给用户提供其装置 的操作界面。该应用程序因此提供一系列功能,例如通过所连接的电视机 显示可用节目的列表、选择其中一个节目的可能性、和由解码器接收上述 的节目。为执行操作,这些功能每个都要使用所述模块的服务和在装置中发起的系统的服务。该驻留软件系列包括驱动、内核、模块、和应用程序,存储在闪存中。当该装置启动时,通常软件必须被载入RAM中并以图4所示的顺序发起。 在第一步E1,解码器启动。然后,在第二步(E2),验证驻留软件、内核、 驱动、服务模块、和应用程序的镜像的完整性。实际上,对于存储在闪存 中或任何其他种类的永久存储器中的软件的损坏,按照惯例包括一个系统, 其用于验证该软件的完整性并在损坏的情况下下载完整的替代版本。该系 统可以在CRC (循环冗余编码)的基础上操作,其在存储器中增加从软件 整体求得的代码。在系统发起的早期阶段,在发起所存储的代码的任何部 分之前,在代码上进行CRC运算并同所存储的代码进行比较。在不一致的 情况下,检测到损坏并下载替代版本。这种CRC保护可应用于整个软件或 代码模块。通过这种方式,永远不会试图发起损坏的代码。步骤E2还检查 是否要求系统更新,即使在系统完整的情况下也如此。实际上,在特定的 情况下,例如解码器的驻留软件的新版本是可用的,或由于其他理由,应 用程序可以请求下载新的驻留软件。通常这通过以下来实现在存储器中 的已知区域中放置下载标志,以及附加必要信息例如所需软件版本的标识 符。当满足更新条件、不完整或有下载请求时,驻留软件版本被下载并作 为已存在版本的替代置于存储器中。在该步骤的结束,该装置必然具备驻 留软件的完整版本。当组成存储在存储器中的软件副本的每个字节与参考 版本中的相应的字节相匹配时,就称该软件是完整的。这意味着没有物理 的或软件的过程修改值或损坏任何这些字节。然后,在第二步骤(E3),系统内核被载入到存储器并被发起。接着, 在附图中未示出的驱动已经被发起的步骤之后,系统内核载入并发起服务。 如步骤E8所示一个接一个地发起这些服务,这将被重复直到所有的服务都 被发起。 一旦发起了所有的服务,在步骤EIO中发起应用程序。然后解码 器是可操作的且准备好被使用。因此,可以将该软件发起分解为对应于内核发起、服务发起、和应用程 序发起的三个阶段。这些阶段的每一个会有执行问题。根据每个阶段的不 同特性,错误的种类、其发生的可能性、它们对系统操作的影响、以及可 预见的校正措施不同。内核发起阶段特征在于在硬件中执行的最小的软件。该软件一般不考虑参数或考虑有限数量的外部参数。因此彻底测试内核的操作通常是可能的。 我们拥有操作保持相对简单且在稳定的环境下执行的软件。由此在这点上 错误发生的可能性变低且一般是由于硬件故障或存储在闪存里的版本损 坏。服务发起阶段特征在于更复杂的功能,这意味着其软件更难于以彻底的 方式检测。另外,很多这种模块在发起时使用外部参数。例如,存在使用 包括在芯片卡中的信息的访问控制模块,服务列表控制器可以搜索网络上 的服务列表或用以前使用时保存的列表初始化。模块也经常使用也是在以 前使用时保存的用户参数。因此服务软件模块是在变化的环境中运行的相 对复杂的程序。结果,对于所有可能的参数值的彻底地检测它们一般是不 可能的。它们也会经受硬件故障或保存在存储器中的软件损坏。对于应用程序发起阶段,其特征为执行条件变化更多的更复杂的服务发 起阶段。实际上,除必须要考虑的不同的参数之外,其执行还必须与用户 和用户关于解码器可能采取的所有的动作的相互作用。其同样可能经受硬 件的故障或保存在存储器中的其软件损坏。现在将描述为更好地管理错误而可能采取的不同措施。 至于硬件故障, 一般不能做些什么,因为用户必须将装置送去维修。 已经观察到内核遭遇错误的主要原因在于硬件故障和其保存的软件镜 像的损坏。通常没有为该编码规划其他错误恢复机制。对于应用程序, 一般也具有检测在执行期间由于软件问题引起的阻塞的 机制。该机制,被称为看门狗复位,对于系统包括初始化向0减少的计数 器。应用程序以一种从不达到0的方式有规律地增加该看门狗复位计数器。 当应用程序冻结时,其不再能够增加计数器,则其达到零值。当计数器达 到值0时,系统触发系统再初始化,重启解码器。该重启一般足以重建装 置的搡作状态。由于在应用程序的操作阶段期间发生的问题一般是由于其 使用或外部条件的发生,该重启导致新的发起,其中对问题负有责任的条 件已经消失了。在服务发起阶段,在内存中的软件损坏和硬件故障之外,还可能经历发 起问题。实际上,这些服务具有一定的复杂性且,另外它们的发起可能依 赖于外部参数例如最新的服务列表或用户偏爱。这些模块不能在所有可能 的外部参数值的情况下被彻底地检测。因此,发起中可能发生阻塞。这些问题一般不能通过重启装置来解决,这样的重启未改变被考虑的参数。引 起模块执行错误的参数每次都会引起模块执行错误。在这种情况下,当发 起模块时被启动的装置可能经历错误。然后,该错误导致装置重启。在重 启时这样的错误再次出现,且装置进入重启的死循环。图1呈现了按照本发明的一个实施例的启动图,其允许检测这类情况并 采取校正措施。该实施例基于在服务发起阶段期间记忆切换点的事实。该记忆通过将"跟踪"(trace)数据写入存储器中来实现。当启动成功时,在 服务启动阶段的结束触从存储器中删除这些跟踪数据。然而,当在服务之 一发起期间出现问题时,在到达删除这些跟踪数据的阶段之前,发生重启。 在启动期间,存储器中存在跟踪数据指示先前的启动没有完成。而且,跟 踪数据的值允许识别引起问题的服务。在步骤El,装置启动。接着为验证 装置软件的完整性的步骤E2,并且如有必要下载新的驻留软件。接下来步 骤E3发起内核和驱动。在步骤E3结束时,检查写入到存储器的跟踪数据 的存在。如果不存在跟踪数据,则前面的启动是成功的,且可以开始服务 发起处理。这些信息在步骤E7以第一跟踪数据的形式记忆。然后在步骤 E8发起第一服务。接下来,通过每次在步骤E7中存储服务启动处理的状 态,重复步骤E7和E8。该状态可以是,例如,最后发起或下一个将要发 起的服务的参考。当所有的服务都已经被发起时,在步骤E9中删除跟踪数 据。在该实施例中,该步骤还重置将在下面描述的异常计数器。接着,月良 务已经被成功发起,应用程序发起步骤El0结束装置的启动处理。当服务的发起失败时,装置或立即重启或在装置阻塞之后根据用户的指 令重启。在任何情况下,重启发生在启动处理可以执行跟踪数据删除的步 骤E9之前。因此,在重启期间,在内核发起步骤E3结束时执行的跟踪数 据存在检测将是肯定的。这种情况下,步骤E4包括增加异常计数器。该计 数器用于计算连续失败的启动的次数。在步骤E5删除跟踪数据。这两个步 骤的顺序并不重要。接下来执行检测,以检测异常计数器与门限值的关系。 如果超出了该门限值,将触发警报以允许采取校正动作。该异常计数器关 联门限值检测的用法允许仅在一定次数的连续失败启动发生错误时才触发 警报。该用法是可选的;实际上,第一次启动失败时就触发警报也是可能 的。但在这种情况下,当发生问题是由于(例如)启动处理中的偶尔中断, 例如电源停电或装置被用户关闭,也可能会触发警报。只要没有达到门限值,通过执行步骤E7到E10来尝试启动。门限值典型地为几个单元,3或5。这个值越高,就需要越多的失败的启动才能触发警报;这个值越低,由于偶然问题导致触发警报的风险越高。多种类型的校正动作都是可能的。第一种可能时将系统重置为默认的配置。换句话说,所有的参数,例如用户筒档(user profile )、其偏好、服务 列表都被重置为默认值。通过这种方式,获得已知的和经过测试的配置, 其允许启动发生。故障服务的发起也可以被禁止且除了一个或多个服务外 重启该装置。这可能导致功能的降低,但可以允许用户校正这个问题。下 载驻留软件新版本的请求也可以写进存储器中以重置该装置到已知的状 态。可以为用户显示消息。也可以实现恢复策略,该恢复策略中,参数被 初始地重置为默认值,如果这还不够,可以禁止某些服务,从而在这些动 作失败的情况下,可以要求下载新版本的驻留软件。优选地,用户将通过 屏上消息或其它通信方式例如装置上激活特定信号的来了解该情况。本实施例的描述并不是限制性的。本领域技术人员能够理解可以适当地 改变。特别地,删除跟踪数据可以替换为由写入指示最后的启动已经成功 的参数,该参数被将初始化为指示在服务发起阶段之前的问题的值。在不 离开本发明的框架的前提下以多种方式组合校正动作也是显然的。选择跟 踪数据写入存储器的不同的时刻和内容也是可能的。
权利要求
1. 一种检测在具有永久存储器的电子装置启动期间发生错误的方法,所述装置由驻留软件控制,其特征在于所述驻留软件启动处理包括至少以下步骤在第一次启动期间,在每个模块发起之前向所述装置存储器写入信息的至少一个步骤,所述启动处理包括多个模块的连续发起;在第二次启动期间,按照在第一次启动期间写入到存储器中的所述信息检测在第一次启动中发生的错误的步骤。
2. 按照权利要求1所述的方法,还包括在完成驻留软件至少一部分 的无错发起时删除所述写入到存储器中的信息的步骤。
3. 按照权利要求2所述的方法,其中所述错误检测步骤通过检测在启动 处理期间写入到存储器中的所述信息的存在来进行。
4. 按照权利要求1到3之一所述的方法,还包括在检测到至少一个先 前启动发生错误之后触发警报。
5. 按照权利要求4所述的方法,还包括当警报触发时,恢复所述装置 的至少一个参数的默认值的步骤。
6. 按照权利要求4所述的方法,还包括当警报触发时,在下一次装置 启动期间禁止至少 一个模块的发起的步骤。
7. 按照权利要求4所述的方法,还包括当警报触发时,导致驻留软件 新版本的下载的步骤。
8. 按照权利要求4所述的方法,还包括当警报触发时,导致为用户 显示信息的步骤。
9. 一种电子装置,包括永久存储器、被设计来控制该电子装置的驻留软 件、以及驻留软件发起设备,当所述装置启动时,该电子装置还包括在 包含多个模块的连续发起的启动处理期间、在每个模块的发起之前将信息 写入到所述装置存储器中的设备;以及按照在启动处理期间写入到存储器 中的所述信息检测在先前启动期间发生的错误的设备。
10. 按照权利要求9所述的装置,还包括在驻留软件的至少一部分的 无错发起完成时删除所述写入到存储器中的信息的设备。
11. 按照权利要求9或IO之一所述的装置,还包括在检测到至少一个先前启动发生错误之后触发警报的设备。
12. 按照权利要求11所述的装置,还包括 置的至少 一 个参数的默认值的设备。
13. 按照权利要求11所述的装置,还包括 置启动期间禁止至少一个模块的发起的设备。
14. 按照权利要求11所述的装置,还包括 件新版本的下载的设备。
15. 按照权利要求11所述的装置,还包括: 息的设备。当警报触发时,重置所述装 当警报触发时,在下一次装 当警报触发时,导致驻留软 当警报触发时为用户显示信
全文摘要
本发明允许检测在电子装置驻留软件的发起阶段期间发生的问题。该检测通过使用在该阶段期间写入到非易失性存储器中的信息来进行。该信息在成功之后被删除。在失败的情况下,下次重启时,可以使用该信息去检测问题。
文档编号G06F11/14GK101253779SQ200680025277
公开日2008年8月27日 申请日期2006年7月7日 优先权日2005年7月11日
发明者西里·奎尔, 让-克劳德·科尔马格罗, 路易斯-泽维尔·卡博内尔 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1