单片机及其运行中错误的追踪定位方法和装置与流程

文档序号:13221322阅读:261来源:国知局
技术领域本发明涉及单片机技术领域,特别涉及一种单片机运行中错误的追踪定位方法、一种单片机运行中错误的追踪定位装置和一种单片机。

背景技术:
单片机在整个工作过程中通常会经过上电、复位、硬件初始化、软件初始化和程序运行等众多阶段和步骤,尤其复杂单片机在工作过程中,经过的阶段会更加细化繁多,同时可能出现的错误或故障概率也将增加。目前,单片机产品研发结束并投入生产使用后,并不能完全保证其在任何条件环境或任一工作阶段与状态下都具有正确性和稳定性,有些错误或失效在单片机研发验证过程中并不能完全发现,尤其是不同工作环境和场合出现的各种随机性小概率错误和故障。因此,针对该问题,当前单片机设计一般在硬件逻辑中增加针对该单片机的硬件测试模式与硬件测试电路,使单片机运行在硬件测试模式中,以便于测试与硬件测试电路相符合的一些功能或性能是否正确或达标,或者通过单片机寄存器标志位记录单片机在整个运行过程中可能产生的已知错误,通过外部信号输出已知错误的标志位以通知单片机外部进行识别,并通过软件程序判断该标志位来确定错误来源,以及运行相应的错误处理程序以便于恢复单片机的正确运行状态。但是,当前单片机设计存在的问题是:单片机在不同的应用场合和环境下受到内外界各种随机性影响可能会产生一些很难定位原因的错误,而此时单片机已经处于正常应用场合下,即已经处于成品的状态,难以剖析该单片机内部来定位错误点和错误原因,故当前单片机设计中前端测试验证定位错误原因的方法几乎无法使用。同时,单片机内部包含的测试逻辑或测试电路也只是针对单片机本身具体已知的功能进行测试验证,在实际情况下产生的问题很多时候都是类似随机概率现象。另外,利用软件程序进行的错误恢复方法也只是针对错误导致的结果进行的补救措施,却不能查出错误产生原因。此外,通过外部信号输出单片机内部错误的标志位,也只能在单片机设计开发者已知的错误范畴内进行指示,且该方案实现成本较高,单片机内部逻辑处理电路较复杂。因此,在单片机成品正常工作时,如何定位单片机运行过程中随机出错阶段、出错点和出错原因将成为提高单片机产品可靠性和增加后续产品的优良性的关键。

技术实现要素:
本发明的目的旨在至少从一定程度上解决上述的技术问题之一。为此,本发明的一个目的在于提出一种单片机运行中错误的追踪定位方法,该单片机运行中错误的追踪定位方法能够在单片机成品正常工作时,定位出现错误(包括随机概率性错误)的阶段和产生点,且成本极低。本发明的另一个目的在于提出一种单片机运行中错误的追踪定位装置。本发明的再一个目的在于提出一种单片机。为达到上述目的,本发明一方面实施例提出了一种单片机运行中错误的追踪定位方法,所述单片机包括第一至第N功能模块以及输出管脚,其中,所述第一至第N功能模块具有对应的工作顺序,其中,N为正整数,所述单片机运行中错误的追踪定位方法包括以下步骤:S1、所述单片机通电启动,所述第i功能模块进行工作,其中,i为小于或等于N的正整数;S2、指示序列控制模块控制与所述第i功能模块对应的第i跟踪检测模块检测所述第i功能模块的状态信息;S3、如果根据所述第i功能模块的状态信息判断所述第i功能模块属于正确状态,则所述指示序列控制模块生成第i预设组合序列;S4、所述指示序列控制模块通过所述输出管脚输出所述第i预设组合序列,并根据所述第i预设组合序列控制第i+1跟踪检测模块启动;S5、重复执行所述步骤S2-S4,直至所述第N功能模块进行工作。本发明实施例提出的单片机运行中错误的追踪定位方法,在第i功能模块进行工作时,指示序列控制模块控制与第i功能模块对应的第i跟踪检测模块检测第i功能模块的状态信息,且如果根据第i功能模块的状态信息判断第i功能模块属于正确状态,指示序列控制模块生成第i预设组合序列,并通过输出管脚输出第i预设组合序列,并根据第i预设组合序列控制第i+1跟踪检测模块启动,之后重复执行上述过程,直至第N功能模块进行工作。该单片机运行中错误的追踪定位方法能够在单片机整个工作过程中,即时的跟踪错误并对错误(包括随机概率性错误)的阶段和产生点进行定位,并将定位信息输出单片机外部,从而为获取可靠的错误信息和分析单片机成品的错误提供了巨大的便利性,为单片机开发设计和后续产品性能保障提供极大的帮助,并且仅需少许硬件电路即可实现,不需要软件进行控制,可靠性高,成本极低。为达到上述目的,本发明另一方面实施例还提出了一种单片机运行中错误的追踪定位装置,所述单片机包括第一至第N功能模块以及输出管脚,其中,所述第一至第N功能模块具有对应的工作顺序,其中,N为正整数,所述单片机运行中错误的追踪定位装置包括:与所述第一至第N功能模块分别对应的第一至第N跟踪检测模块;指示序列控制模块,所述指示序列控制模块分别与所述第一至第N跟踪检测模块以及所述输出管脚相连,所述指示序列控制模块根据以下步骤进行工作:S1、所述单片机通电启动,所述第i功能模块进行工作,其中,i为小于或等于N的正整数;S2、指示序列控制模块控制所述第i跟踪检测模块检测所述第i功能模块的状态信息;S3、如果根据所述第i功能模块的状态信息判断所述第i功能模块属于正确状态,则所述指示序列控制模块生成第i预设组合序列;S4、所述指示序列控制模块通过所述输出管脚输出所述第i预设组合序列,并根据所述第i预设组合序列控制第i+1跟踪检测模块启动;S5、重复执行所述步骤S2-S4,直至所述第N功能模块进行工作。本发明实施例提出的单片机运行中错误的追踪定位装置,在第i功能模块进行工作时,通过指示序列控制模块控制第i跟踪检测模块检测第i功能模块的状态信息,且如果根据第i功能模块的状态信息判断第i功能模块属于正确状态,指示序列控制模块生成第i预设组合序列,并通过输出管脚输出第i预设组合序列,并根据第i预设组合序列控制第i+1跟踪检测模块启动,之后重复执行上述过程,直至第N功能模块进行工作。该单片机运行中错误的追踪定位装置能够在单片机整个工作过程中,即时的跟踪错误并对错误(包括随机概率性错误)的阶段和产生点进行定位,并将定位信息输出单片机外部,从而为获取可靠的错误信息和分析单片机成品的错误提供了巨大的便利性,为单片机开发设计和后续产品性能保障提供极大的帮助,并且仅需少许硬件电路即可实现,不需要软件进行控制,可靠性高,成本极低。为达到上述目的,本发明再一方面实施例还提出了一种单片机,该单片机包括:第一至第N功能模块,所述第一至第N功能模块具有对应的工作顺序,其中,N为正整数;输出管脚;所述的单片机运行中错误的追踪定位装置,所述单片机运行中错误的追踪定位装置分别与所述第一至第N功能模块和所述输出管脚相连。本发明实施例提出的单片机,通过单片机运行中错误的追踪定位装置来在单片机整个工作过程中,即时的跟踪错误并对错误(包括随机概率性错误)的阶段和产生点进行定位,并将定位信息输出单片机外部,从而为获取可靠的错误信息和分析单片机成品的错误提供了巨大的便利性,为单片机开发设计和后续产品性能保障提供极大的帮助,并且仅通过少许硬件电路实现,不需要软件进行控制,可靠性高,成本极低。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为根据本发明实施例的单片机运行中错误的追踪定位方法的流程图;图2为根据本发明一个实施例的单片机运行中错误的追踪定位方法的流程图;图3为根据本发明一个具体实施例的单片机运行中错误的追踪定位方法的单片机的工作阶段和与工作阶段对应的预设组合序列的列表的示意图;图4为根据本发明一个具体实施例的单片机运行中错误的追踪定位方法的单片机在整个工作过程中未出现错误时,输出管脚输出的预设组合序列的示意图;图5为根据本发明另一个具体实施例的单片机运行中错误的追踪定位方法的单片机在D—E工作阶段出现错误时,输出管脚输出的预设组合序列的示意图;图6为根据本发明实施例的单片机运行中错误的追踪定位装置的框图;图7为根据本发明一个具体实施例的单片机运行中错误的追踪定位装置的结构示意图;以及图8为根据本发明实施例的单片机的框图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的可应用于性和/或其他材料的使用。另外,以下描述的第一特征在第二特征之“上”的结构可以包括第一和第二特征形成为直接接触的实施例,也可以包括另外的特征形成在第一和第二特征之间的实施例,这样第一和第二特征可能不是直接接触。在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。下面参照附图来描述根据本发明实施例提出的单片机运行中错误的追踪定位方法、单片机运行中错误的追踪定位装置以及单片机。如图1所示,本发明实施例的单片机运行中错误的追踪定位方法,包括以下步骤:S1、单片机通电启动,第i功能模块进行工作,其中,i为小于或等于N的正整数。在本发明实施例中,单片机可以包括第一至第N功能模块以及输出管脚,其中,第一至第N功能模块具有对应的工作顺序,其中,N为正整数。S2、指示序列控制模块控制与第i功能模块对应的第i跟踪检测模块检测第i功能模块的状态信息。在本发明的一个实施例中,与第一至第N功能模块分别对应的第一至第N跟踪检测模块可以用于跟踪对应功能模块的工作情况,检测对应功能模块是否正确完成工作顺序上的功能,同时检测对应功能模块出现的状态(包括正确状态与问题状态),并生成状态信息反馈到指示序列控制模块。S3、如果根据第i功能模块的状态信息判断第i功能模块属于正确状态,则指示序列控制模块生成第i预设组合序列。S4、指示序列控制模块通过输出管脚输出第i预设组合序列,并根据第i预设组合序列控制第i+1跟踪检测模块启动。S5、重复执行步骤S2-S4,直至第N功能模块进行工作。进一步地,在本发明的一个实施例中,单片机运行中错误的追踪定位方法还可以包括:S31、指示序列控制模块对第i预设组合序列进行锁存,并通过锁存器进行输出。进一步地,在本发明的一个实施例中,指示序列控制模块通过输出管脚输出第i预设组合序列具体可以包括:S41、指示序列控制模块获取输出管脚的占用状态信息。S42、当输出管脚空闲时,指示序列控制模块通过输出管脚输出第i预设组合序列。进一步地,在本发明的一个实施例中,单片机运行中错误的追踪定位方法还可以包括:S43、如果根据第i功能模块的状态信息判断第i功能模块属于问题状态,则指示序列控制模块保持输出管脚输出不变。进一步地,在本发明的一个实施例中,单片机运行中错误的追踪定位方法还可以包括:S6、指示序列控制模块控制与第N功能模块对应的第N跟踪检测模块检测第N功能模块的状态信息。S7、如果根据第N功能模块的状态信息判断第N功能模块属于正确状态,则指示序列控制模块保持输出管脚输出第N-1预设组合序列。S8、如果根据第N功能模块的状态信息判断第N功能模块属于问题状态,则指示序列控制模块生成第N预设组合序列,并通过输出管脚输出第N预设组合序列。进一步地,在本发明的一个实施例中,指示序列控制模块可以包括状态信息收集逻辑、阶段检测逻辑、组合序列产生逻辑、组合序列锁存逻辑、发出控制计时器以及组合序列发出控制逻辑。其中,状态信息收集逻辑分别与第一至第N跟踪检测模块相连,状态信息收集逻辑用于按照第一至第N功能模块的工作顺序收集第一至第N跟踪检测模块检测的对应功能模块的状态信息。阶段检测逻辑与状态信息收集逻辑相连,阶段检测逻辑用于根据状态信息收集逻辑收集到的状态信息,产生对应的阶段号。组合序列产生逻辑分别与阶段检测逻辑和状态信息收集逻辑相连,组合序列产生逻辑用于根据状态信息收集逻辑收集到的状态信息和阶段检测逻辑对应产生的阶段号,按照第一至第N功能模块的工作顺序产生预设组合序列。组合序列锁存逻辑与组合序列产生逻辑相连,组合序列锁存逻辑用于对组合序列产生逻辑产生的预设组合序列进行锁存,并通过锁存器进行输出。发出控制计时器用于在计数一周期时,发出组合序列发出通知信号。组合序列发出控制逻辑分别与组合序列锁存逻辑和发出控制计时器相连,组合序列发出控制逻辑用于获取输出管脚的占用状态信息,并根据占用状态信息和组合序列发出通知信号控制组合序列锁存逻辑锁存的预设组合序列进行正确输出至单片机的输出控制逻辑。具体地,在本发明的一个实施例中,输出控制逻辑分别与组合序列发出控制逻辑和输出管脚相连,输出控制逻辑用于检测输出管脚的占用状态,并根据输出管脚的占用状态生成占用状态信息,以及当输出管脚空闲时,输出组合序列发出控制逻辑发出的预设组合序列至输出管脚。进一步地,在本发明的一个实施例中,输出控制逻辑输出组合序列发出控制逻辑发出的预设组合序列和单片机其他功能分时复用输出管脚,当输出管脚正在被单片机其他功能占用时,组合序列发出控制逻辑会接收到输出控制逻辑发出的占用状态信息,此时,组合序列发出控制逻辑将不发出预设组合序列,直至占用状态信息指示输出管脚空闲时,组合序列发出控制逻辑才发出预设组合序列。进一步地,在本发明的一个实施例中,输出控制逻辑还用于输出其它复用信号。需要说明的是,指示序列控制模块通过组合序列锁存逻辑对组合序列产生逻辑产生的预设组合序列进行锁存,从而可以在某一个功能模块工作时间较长时,确保对应的预设组合序列与该功能模块工作阶段保持同步,以始终输出该工作阶段相对应的预设组合序列。进一步地,在本发明的一个具体实施例中,N为7,第一至第N功能模块可以为第一至第七功能模块,第一至第七功能模块分别可以为电源逻辑模块(以下记为A)、时钟逻辑模块(以下记为B)、复位逻辑模块(以下记为C)、闪存模块(以下记为D)、总线通信逻辑模块(以下记为E)、功能设备逻辑模块(以下记为F)和中央处理器模块(以下记为G)。其中,第一至第七功能模块在单片机从开始到运行整个过程中的工作顺序为:start—A—B—C—D—E—F—G,其中,start代表单片机的电源和供电模块。第一至第七功能模块在单片机从开始到运行整个过程中的工作顺序具体为:电源逻辑模块首先接通电源,当单片机供电稳定后,启动时钟逻辑模块,内部时钟稳定后,复位逻辑模块功能生效,使得单片机进行硬件初始化操作,硬件初始化完成后,单片机内部确认闪存模块的固化数据(程序)的可用性与正确性,确保程序数据无误后,单片机着手进行软件初始化操作,即读取闪存模块中初始化命令,命令数据通过总线通信逻辑模块中的总线进行通信,软件初始化完成后,功能设备逻辑模块中各功能设备均处于待命状态,此时,整个单片机开始进行正常运行,中央处理器模块中中央处理器不断执行应用程序,实现应用程序的功能。可以发现,在单片机从开始到正常运行整个过程中,错误(包括随机性小概率错误)发生在start—A—B—C—D—E—F—G中任意两节点构成的工作阶段之间或两个节点本身,因此本发明实施例的单片机运行中错误的追踪定位方法在顺序节点处跟踪定位错误,从而实现将单片机出错阶段进行锁定,使得用户在单片机每一次运行时即可得知错误,甚至得知某个难以重现的随机性小概率错误是在单片机内部哪一个功能模块产生。进一步地,在本发明的一个实施例中,如图2所示,单片机运行中错误的追踪定位方法包括以下步骤:S21、单片机通电启动。S22、节点A的跟踪检测模块检测start—A工作阶段中A的功能实现过程是否属于错误状态。如果是,则进入步骤S23,如果否,则进入步骤S24,其中,节点A的跟踪检测模块为第一跟踪监测模块。S23、输出管脚的输出一直保持先前默认组合序列s。S24、输出管脚输出第一预设组合序列a。从而单片机外部可以对a进行观察和分析,若a符合A的跟踪检测模块预设的从start—A的信号变化规律,则A属于正确状态,否则错误阶段立即定位于start—A,即单片机的电源和供电出现错误,当检测A属于正确状态后,单片机按照工作顺序进入A—B工作阶段,即时钟逻辑模块开始工作,进入步骤S25。S25、节点B的跟踪检测模块检测A—B工作阶段中B的功能实现过程是否属于错误状态。如果是,则进入步骤S26,如果否,则进入步骤S27,其中,节点B的跟踪检测模块为第二跟踪监测模块。S26、输出管脚的输出一直保持第一预设组合序列a。S27、输出管脚输出第二预设组合序列b。从而单片机外部可以对b进行观察和分析,若b符合B的跟踪检测模块预设的从A—B的信号变化规律,则B属于正确状态,否则错误阶段立即定位于A—B,即时钟逻辑模块出现错误,当检测B属于正确状态后,单片机按照工作顺序进入B—C工作阶段,即复位逻辑模块开始工作,进入步骤S28。S28、节点C的跟踪检测模块检测B—C工作阶段中C的功能实现过程是否属于错误状态。如果是,则进入步骤S29,如果否,则进入步骤S210,其中,节点C的跟踪检测模块为第三跟踪监测模块。S29、输出管脚的输出一直保持第二预设组合序列b。S210、输出管脚输出第三预设组合序列c。从而单片机外部可以对c进行观察和分析,若c符合C的跟踪检测模块预设的从B—C的信号变化规律,则C属于正确状态,否则错误阶段立即定位于B—C,即时钟逻辑模块出现错误,当检测C属于正确状态后,单片机按照工作顺序进入C—D工作阶段,即闪存模块开始工作,进入步骤S211。S211、节点D的跟踪检测模块检测C—D工作阶段中D的功能实现过程是否属于错误状态。如果是,则进入步骤S212,如果否,则进入步骤S213,其中,节点D的跟踪检测模块为第四跟踪监测模块。S212、输出管脚的输出一直保持第三预设组合序列c。S213、输出管脚输出第四预设组合序列d。从而单片机外部可以对d进行观察和分析,若d符合D的跟踪检测模块预设的从C—D的信号变化规律,则D属于正确状态,否则错误阶段立即定位于C—D,即时钟逻辑模块出现错误,当检测D属于正确状态后,单片机按照工作顺序进入D—E工作阶段,即总线通信逻辑模块开始工作,进入步骤S214。S214、节点E的跟踪检测模块检测D—E工作阶段中E的功能实现过程是否属于错误状态。如果是,则进入步骤S215,如果否,则进入步骤S216,其中,节点E的跟踪检测模块为第五跟踪监测模块。S215、输出管脚的输出一直保持第四预设组合序列d。S216、输出管脚输出第五预设组合序列e。从而单片机外部可以对e进行观察和分析,若e符合E的跟踪检测模块预设的从D—E的信号变化规律,则E属于正确状态,否则错误阶段立即定位于D—E,即时钟逻辑模块出现错误,当检测E属于正确状态后,单片机按照工作顺序进入E—F工作阶段,即功能设备逻辑模块开始工作,进入步骤S217。S217、节点F的跟踪检测模块检测E—F工作阶段中F的功能实现过程是否属于错误状态。如果是,则进入步骤S218,如果否,则进入步骤S219,其中,节点F的跟踪检测模块为第六跟踪监测模块。S218、输出管脚的输出一直保持第五预设组合序列e。S219、输出管脚输出第六预设组合序列f。从而单片机外部可以对f进行观察和分析,若f符合F的跟踪检测模块预设的从E—F的信号变化规律,则F属于正确状态,否则错误阶段立即定位于E—F,即时钟逻辑模块出现错误,当检测F属于正确状态后,单片机按照工作顺序进入F—G工作阶段,即中央处理器模块开始工作,进入步骤S220。S220、节点G的跟踪检测模块检测F—G工作阶段中G的功能实现过程是否属于错误状态。如果是,则进入步骤S221,如果否,则进入步骤S222,其中,节点G的跟踪检测模块为第七跟踪监测模块。S221、输出管脚输出第七预设组合序列g。S222、输出管脚的输出一直保持第六预设组合序列f。输出管脚每次输出第六预设组合序列f后,返回步骤S220。由于在单片机工作时,节点G一直存在,故可以设置F—G工作阶段与start—A—B—C—D—E—F过程中每一工作阶段定位错误的实现相反,即当G属于正确状态时,输出管脚的输出一直保持第六预设组合序列f,如果单片机内部G在工作过程中出现错误,则输出管脚输出的预设组合序列会由f变为g。综上所述,如果单片机中第一至第七功能模块按照工作顺序start—A—B—C—D—E—F—G工作的过程中未出现错误,则输出管脚输出预设组合序列的顺序为s—a—b—c—d—e—f。如果B工作的过程中出现错误,则输出管脚输出预设组合序列的顺序为s—a。如果C工作的过程中出现错误,则输出管脚输出预设组合序列的顺序为s—a—b。如果D工作的过程中出现错误,则输出管脚输出预设组合序列的顺序为s—a—b—c。如果E工作的过程中出现错误,则输出管脚输出预设组合序列的顺序为s—a—b—c—d。如果F工作的过程中出现错误,则输出管脚输出预设组合序列的顺序为s—a—b—c—d—e。如果G工作的过程中出现错误,则输出管脚输出预设组合序列的顺序为s—a—b—c—d—e—f—g。因此,根据输出管脚输出预设组合序列的顺序即可快速定位单片机在整个工作顺序中出现的错误(包括随机概率性错误)的阶段和产生点。在本发明的一个具体实施例中,单片机的输出管脚为外部管脚P1、P2和P3,单片机的工作阶段和与工作阶段对应的预设组合序列的列表如图3所示,单片机运行中错误的追踪定位方法包括以下步骤:S41、单片机通电启动,输出默认为000的预设组合序列。S42、A工作,若错误,则输出的预设组合序列始终为000,若正确,则输出的预设组合序列为001,单片机进入A—B工作阶段。S43、B工作,若错误,则输出的预设组合序列始终为001,若正确,则输出的预设组合序列为010,单片机进入B—C工作阶段。S44、C工作,若错误,则输出的预设组合序列始终为010,若正确,则输出的预设组合序列为011,单片机进入C—D工作阶段。S45、D工作,若错误,则输出的预设组合序列始终为011,若正确,则输出的预设组合序列为100,单片机进入D—E工作阶段。S46、E工作,若错误,则输出的预设组合序列始终为100,若正确,则输出的预设组合序列为101,单片机进入E—F工作阶段。S47、F工作,若错误,则输出的预设组合序列始终为101,若正确,则输出的预设组合序列为110,单片机进入F—G工作阶段。S48、G工作,若正确,则输出的预设组合序列始终为110,G继续工作,若错误,则指示序列信息为111。其中,图4为单片机在整个工作过程中未出现错误时输出管脚P1、P2和P3输出的预设组合序列的示意图。图5为单片机在D—E工作阶段出现错误时输出管脚P1、P2和P3输出的预设组合序列的示意图。本发明实施例提出的单片机运行中错误的追踪定位方法,在第i功能模块进行工作时,指示序列控制模块控制与第i功能模块对应的第i跟踪检测模块检测第i功能模块的状态信息,且如果根据第i功能模块的状态信息判断第i功能模块属于正确状态,指示序列控制模块生成第i预设组合序列,并通过输出管脚输出第i预设组合序列,并根据第i预设组合序列控制第i+1跟踪检测模块启动,之后重复执行上述过程,直至第N功能模块进行工作。该单片机运行中错误的追踪定位方法能够在单片机整个工作过程中,即时的跟踪错误并对错误(包括随机概率性错误)的阶段和产生点进行定位,并将定位信息输出至单片机外部,从而为获取可靠的错误信息和分析单片机成品的错误提供了巨大的便利性,为单片机开发设计和后续产品性能保障提供极大的帮助,并且仅需少许硬件电路即可实现,不浪费单片机管脚,不需要软件进行控制,可靠性高,成本极低。本发明另一方面实施例还提出了一种单片机运行中错误的追踪定位装置1,如图6所示,该单片机运行中错误的追踪定位装置1包括:第一至第N跟踪检测模块11、12……、1N和指示序列控制模块20。其中,第一至第N跟踪检测模块11、12……、1N与第一至第N功能模块31、32……、3N分别对应,其中,N为正整数。指示序列控制模块20分别与第一至第N跟踪检测模块11、12……、1N以及输出管脚2相连,指示序列控制模块20根据以下步骤进行工作:S1、单片机通电启动,第i功能模块进行工作,其中,i为小于或等于N的正整数。S2、指示序列控制模块控制第i跟踪检测模块检测第i功能模块的状态信息。S3、如果根据第i功能模块的状态信息判断第i功能模块属于正确状态,则指示序列控制模块生成第i预设组合序列。S4、指示序列控制模块通过输出管脚输出第i预设组合序列,并根据第i预设组合序列控制第i+1跟踪检测模块启动。S5、重复执行步骤S2-S4,直至第N功能模块进行工作。在本发明实施例中,单片机可以包括上述第一至第N功能模块31、32……、3N以及输出管脚2,其中,第一至第N功能模块31、32……、3N具有对应的工作顺序。在本发明的一个实施例中,与第一至第N功能模块31、32……、3N分别对应的第一至第N跟踪检测模块11、12……、1N可以用于跟踪对应功能模块的工作情况,检测对应功能模块是否正确完成工作顺序上的功能,同时检测对应功能模块出现的状态(包括正确状态与问题状态),并生成状态信息反馈到指示序列控制模块20。进一步地,在本发明的一个实施例中,指示序列控制模块20可以对第i预设组合序列进行锁存,并通过锁存器进行输出。进一步地,在本发明的一个实施例中,指示序列控制模块20通过输出管脚2输出第i预设组合序列具体可以包括:指示序列控制模块20获取输出管脚2的占用状态信息,以及当输出管脚2空闲时,指示序列控制模块20通过输出管脚2输出第i预设组合序列。进一步地,在本发明的一个实施例中,如果根据第i功能模块的状态信息判断第i功能模块属于问题状态,则指示序列控制模块20可以保持输出管脚2输出不变。进一步地,在本发明的一个实施例中,指示序列控制模块20还可以根据以下步骤进行工作:S6、指示序列控制模块控制第N跟踪检测模块检测第N功能模块的状态信息。S7、如果根据第N功能模块的状态信息判断第N功能模块属于正确状态,则指示序列控制模块保持输出管脚输出第N-1预设组合序列。S8、如果根据第N功能模块的状态信息判断第N功能模块属于问题状态,则指示序列控制模块生成第N预设组合序列,并通过输出管脚输出第N预设组合序列。进一步地,在本发明的一个实施例中,指示序列控制模块20可以包括状态信息收集逻辑21、阶段检测逻辑22、组合序列产生逻辑23、组合序列锁存逻辑24、发出控制计时器25以及组合序列发出控制逻辑26。其中,状态信息收集逻辑21分别与第一至第N跟踪检测模块11、12……、1N相连,状态信息收集逻辑21用于按照第一至第N功能模块31、32……、3N的工作顺序收集第一至第N跟踪检测模块11、12……、1N检测的对应功能模块的状态信息。阶段检测逻辑22与状态信息收集逻辑21相连,阶段检测逻辑22用于根据状态信息收集逻辑收集到的状态信息,产生对应的阶段号。组合序列产生逻辑23分别与阶段检测逻辑22和状态信息收集逻辑21相连,组合序列产生逻辑23用于根据状态信息收集逻辑21收集到的状态信息和阶段检测逻辑22对应产生的阶段号,按照第一至第N功能模块31、32……、3N的工作顺序产生预设组合序列。组合序列锁存逻辑24与组合序列产生逻辑23相连,组合序列锁存逻辑24用于对组合序列产生逻辑23产生的预设组合序列进行锁存,并通过锁存器进行输出。发出控制计时器25用于在计数一周期时,发出组合序列发出通知信号。组合序列发出控制逻辑26分别与组合序列锁存逻辑24和发出控制计时器25相连,组合序列发出控制逻辑26用于获取输出管脚2的占用状态信息,并根据占用状态信息和组合序列发出通知信号控制组合序列锁存逻辑24锁存的预设组合序列进行正确输出至单片机的输出控制逻辑。具体地,在本发明的一个实施例中,输出控制逻辑分别与组合序列发出控制逻辑26和输出管脚2相连,输出控制逻辑用于检测输出管脚2的占用状态,并根据输出管脚2的占用状态生成占用状态信息,以及当输出管脚2空闲时,输出组合序列发出控制逻辑26发出的预设组合序列至输出管脚2。进一步地,在本发明的一个实施例中,输出控制逻辑输出组合序列发出控制逻辑26发出的预设组合序列和单片机其他功能分时复用输出管脚2,当输出管脚2正在被单片机其他功能占用时,组合序列发出控制逻辑26会接收到输出控制逻辑发出的占用状态信息,此时,组合序列发出控制逻辑26将不发出预设组合序列,直至占用状态信息指示输出管脚2空闲时,组合序列发出控制逻辑26才发出预设组合序列。进一步地,在本发明的一个实施例中,输出控制逻辑还用于输出其它复用信号。需要说明的是,指示序列控制模块20通过组合序列锁存逻辑24对组合序列产生逻辑产生的预设组合序列进行锁存,从而可以在某一个功能模块工作时间较长时,确保对应的预设组合序列与该功能模块工作阶段保持同步,以始终输出该工作阶段相对应的预设组合序列。进一步地,在本发明的一个具体实施例中,如图7所示,N为7,第一至第N功能模块31、32……、3N可以为第一至第七功能模块,第一至第七功能模块分别可以为电源逻辑模块(以下记为A)、时钟逻辑模块(以下记为B)、复位逻辑模块(以下记为C)、闪存模块(以下记为D)、总线通信逻辑模块(以下记为E)、功能设备逻辑模块(以下记为F)和中央处理器模块(以下记为G)。其中,第一至第七功能模块在单片机从开始到运行整个过程中的工作顺序为:start—A—B—C—D—E—F—G,其中,start代表单片机的电源和供电模块。第一至第七功能模块在单片机从开始到运行整个过程中的工作顺序具体为:电源逻辑模块首先接通电源,当单片机供电稳定后,启动时钟逻辑模块,内部时钟稳定后,复位逻辑模块功能生效,使得单片机进行硬件初始化操作,硬件初始化完成后,单片机内部确认闪存模块的固化数据(程序)的可用性与正确性,确保程序数据无误后,单片机着手进行软件初始化操作,即读取闪存模块中初始化命令,命令数据通过总线通信逻辑模块中的总线进行通信,软件初始化完成后,功能设备逻辑模块中各功能设备均处于待命状态,此时,整个单片机开始进行正常运行,中央处理器模块中中央处理器不断执行应用程序,实现应用程序的功能。可以发现,在单片机从开始到正常运行整个过程中,错误(包括随机性小概率错误)发生在start—A—B—C—D—E—F—G中任意两节点构成的工作阶段之间或两个节点本身,因此本发明实施例的单片机运行中错误的追踪定位装置在顺序节点处跟踪定位错误,从而实现将单片机出错阶段进行锁定,使得用户在单片机每一次运行时即可得知错误,甚至得知某个难以重现的随机性小概率错误是在单片机内部哪一个功能模块产生。本发明实施例提出的单片机运行中错误的追踪定位装置,在第i功能模块进行工作时,通过指示序列控制模块控制第i跟踪检测模块检测第i功能模块的状态信息,且如果根据第i功能模块的状态信息判断第i功能模块属于正确状态,指示序列控制模块生成第i预设组合序列,并通过输出管脚输出第i预设组合序列,并根据第i预设组合序列控制第i+1跟踪检测模块启动,之后重复执行上述过程,直至第N功能模块进行工作。该单片机运行中错误的追踪定位装置能够在单片机整个工作过程中,即时的跟踪错误并对错误(包括随机概率性错误)的阶段和产生点进行定位,并将定位信息输出单片机外部,从而为获取可靠的错误信息和分析单片机成品的错误提供了巨大的便利性,为单片机开发设计和后续产品性能保障提供极大的帮助,并且仅需少许硬件电路即可实现,不浪费单片机管脚,不需要软件进行控制,可靠性高,成本极低。此外,本发明再一方面实施例还提出了一种单片机,如图8所示,该单片机包括:上述的单片机运行中错误的追踪定位装置1、输出管脚2以及第一至第N功能模块31、32……、3N。其中,第一至第N功能模块31、32……、3N具有对应的工作顺序,其中,N为正整数。单片机运行中错误的追踪定位装置1分别与第一至第N功能模块31、32……、3N和输出管脚2相连。本发明实施例提出的单片机,通过单片机运行中错误的追踪定位装置来在单片机整个工作过程中,即时的跟踪错误并对错误(包括随机概率性错误)的阶段和产生点进行定位,并将定位信息输出单片机外部,从而为获取可靠的错误信息和分析单片机成品的错误提供了巨大的便利性,为单片机开发设计和后续产品性能保障提供极大的帮助,并且仅通过少许硬件电路实现,不浪费单片机管脚,不需要软件进行控制,可靠性高,成本极低。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,\计算机可读介质\可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1