程序执行监控系统的制作方法与工艺

文档序号:12007059阅读:386来源:国知局
程序执行监控系统的制作方法与工艺
程序执行监控系统【技术领域】本发明属于电子技术领域,特别是涉及嵌入式处理器软件执行可靠性的硬件保护电路,该电路监控每一条代码的执行以判断程序执行是否异常。

背景技术:
传统的嵌入式软件执行的保护电路称为看门狗电路。看门狗电路要求软件在间隔一个预设好的时间之内对特定寄存器进行访问(这个特定的操作称为喂狗操作)。如在规定时间内软件没有发起喂狗操作,则认定软件执行进入某种异常状态,此时看门狗电路会提起硬件的警报,该警报可提起中断或直接复位处理器。传统看门狗电路的问题是只对喂狗操作敏感,如果软件异常的类型不会导致喂狗操作异常时,该软件异常不会被监测到。

技术实现要素:
本发明的目的在于提供一种更精确的程序执行监控系统,可对每一条指令的执行都敏感,从而实现更大范围地监测出软件执行的异常状态。为实现上述目的,本发明提供一种程序执行监控系统,该程序执行监控系统包括软件模拟单元、精确看门狗电路及比较单元,其中软件模拟单元执行编译完成之后的微代码获取软件执行的轨迹,利用此轨迹计算出执行周期内出现的指令组合并用预定的运算方法获得预计的运算码,并输出给比较单元,其中该预定的运算方法为累加和,并且该预计的运算码是以寄存器的形式存在于程序执行监控系统中,在工作时该寄存器被写成计算获得的累加和;处理器核在实际工作时,精确看门狗电路在周期开始时获取指令总线上的数值进行依次累加获得动态运算码,在周期结束时将计算获得的动态运算码输出给比较单元,比较单元将动态运算码和预计的运算码进行对比判断程序执行是否异常。依据上述主要特征,该程序执行监控系统应用在一数字信号处理器核上,设定执行的周期为1.28秒。与现有技术相比较,本发明可以很敏感的监控到每一条指令的执行状况,通过比较单元比较动态运算码和预计的运算码而判断程序执行是否异常,从而实现更大范围地监测出软件执行的异常状态。【附图说明】图1为一种实施本发明的应用举例。图2为图1所示的实施本发明的程序执行监控系统的应用示意图。【具体实施方式】请参阅图1所示,实施本发明的程序执行监控系统包括软件模拟单元、精确看门狗电路及比较单元,其中软件模拟单元执行编译完成之后的代码获取软件执行的轨迹,利用此轨迹计算出执行周期内出现的指令组合并用预定的运算方法获得预计的运算码,并输出给比较单元。而在代码动态执行过程中,精确看门狗电路在周期开始时开始记录指令总线上出现的每一个指令,加入运算输入,在周期结束时计算获得动态运算码也输出给比较单元,比较单元将动态运算码和预计的运算码进行对比判断程序执行是否异常。在具体实施时,软件模拟单元实际为一段软件代码,该软件代码模拟处理器的工作方式对编译完成之后的代码进行读取,即软件实现的虚拟处理器核执行编译之后的微代码。在具体实施时,实施本发明的程序执行监控系统应用在一数字信号处理器核上,设定执行的周期为1.28秒,即每隔1.28秒,该程序执行监控系统将会重新从起始位置(即对比点或周期起始点)开始执行,由此设定精确看门狗电路的运算码对比周期也为1.28秒。实施本发明的程序执行监控系统是通过软件编程使得代码的执行完全不依赖于动态的数据改变,即代码执行顺序可预期。在编译完成后通过软件模拟单元获得程序执行轨迹,该程序执行轨迹即为程序执行过程中所有执行到的代码按照执行顺序先后排列出来的组合,之后利用此轨迹计算出执行周期内出现的指令组合并用预定的运算方法获得预计的运算码。该预定的运算方法可为通过不同的计算方法来获得最终的运算码,本实施例采用累加和方式,即设定该程序执行监控系统的预定的运算方法为累加和,由此计算出1.28秒周期内所有被执行到的代码的累加和。其他各种不同的算法可获得不同的可靠性,如异或计算,CRC计算等。但会相应的增加硬件成本。按上述的方法,动态运算码是通过处理器核在实际工作时,精确看门狗电路获取指令总线上的数值进行依次累加获得,而预计的运算码是通过软件实现的虚拟处理器核(即软件模拟单元)对编译之后的微代码进行执行得到,比较单元通过将动态运算码与预计的运算码进行比较而判断代码执行是否异常。该预计的运算码是以寄存器的形式存在于程序执行监控系统中,可动态配置。在工作时该寄存器被写成计算获得的累加和,即预计的运算码。请参阅图2所示,为图1所示的实施本发明的程序执行监控系统的应用示意图。为执行函数A与函数B,代码执行的顺序为AAB、AAB、AAB,所以周期内执行的代码为2次函数A的代码与1次函数B的代码。在实施时,软件模拟单元执行编译完成之后的函数A与函数B的代码获取软件执行的轨迹,利用此轨迹计算出执行周期内重复出现的指令组合(即AAB)并用累加和方式获得预计的运算码,并输出给比较单元。而精确看门狗电路获取周期内指令总线上的数值进行依次累加获得动态运算码也输出给比较单元,比较单元通过将动态运算码与预计的运算码进行比较而判断代码执行是否异常。从图2可以看出,在每个周期开始之时便为对比点,此时比较单元通过比较动态运算码与预计的运算码判断代码执行是否异常。可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1