在线调试多事件控制和实时监视的接口装置的制作方法

文档序号:6437487阅读:138来源:国知局
专利名称:在线调试多事件控制和实时监视的接口装置的制作方法
技术领域
本发明涉及嵌入式处理器在线调试领域,其具体是一种在线调试多事件控制和实时监视的接口装置。
背景技术
在线调试是一种嵌入式处理器进行软件调试使用广泛的方式,在线调试通过一个在线仿真器实现软件调试人员与嵌入式处理器的实时交互。
硬件断点事件和追踪事件是在线调试中常用的两种方式,通过硬件断点事件和追踪事件软件调试人员可以准确的定位调试程序,进而与嵌入式处理器进行实时交互。随着嵌入式处理器性能的不断提升,搭载在嵌入式处理器上的程序也越来越大,越来越复杂,这对软件调试提出了挑战,需要进行复杂的在线调试。软件调试人员进行复杂的在线调试过程中会频繁的使用硬件断点事件和追踪事件,甚至会要求硬件断点事件和追踪事件按照不同的组合顺序发生。
传统的嵌入式处理器硬件辅助调试模块,在设计上硬件断点事件和追踪事件的发生相互独立。在复杂的软件调试操作中,软件调试人员同时使用硬件断点事件和追踪事件进行在线调试,这样有可能会出现多个硬件断点事件和追踪事件同时发生时就有可能导致嵌入式处理器出现响应混乱的状态,从而导致软件调试的不确定性和不易监视,这给在线调试增加了难度。发明内容
为了克服硬件断点事件和追踪事件同时发生导致嵌入式处理器出现响应混乱的缺陷,本发明提供了一种在线调试多事件控制和实时监视的接口装置,控制硬件断点事件和追踪事件按照特定的组合顺利来发生并进行实时监视,有效降低在线调试的难度。
本发明解决其技术问题所采用的技术方案是
—种在线调试多事件控制和实时监视的接口装置,所述的接口装置包括
硬件事件单元,包括硬件断点事件发生器和追踪事件发生器,硬件断点事件由硬件断点事件发生器产生;追踪事件由追踪事件发生器产生;
JTAG接口单元,基于IEEE Std 1149. 1协议的标准通信接口,在线调试中用于接收上位机发送给嵌入式处理器的控制命令和将嵌入式处理器的状态信息输出给上位机;
命令寄存器单元,用于通过JTAG接口单元接收上位机发送的选择控制寄存器单元并对控制寄存器单元进行写操作的命令;通过JTAG接口单元接收上位机发送的选择状态寄存器单元并对状态寄存器单元进行读操作的命令;
控制寄存器单元,用于当命令寄存器单元接收到上位机通过JTAG接口单元发送的选中控制寄存器单元并对控制寄存器单元进行写操作的命令,控制寄存器单元开始接收上位机通过JTAG接口单元发送的命令进而来控制第一硬件断点事件、第二硬件断点事件、 追踪事件以及第一硬件断点事件、第二硬件断点事件和追踪事件构成的组合事件的有效与无效;
状态寄存器单元,用于保存所述第一硬件断点事件、第二硬件断点事件、追踪事件和组合事件发生后嵌入式处理器的状态信息。
进一步,所述追踪事件发生器有一个,所述硬件断点事件发生器有至少两个以上。
再进一步,所述追踪事件发生器有一个,所述硬件断点事件发生器有两个,分别是第一硬件断点事件发生器和第二硬件断点事件发生器。
所述命令寄存器单元中一位读写控制位W/R,当W/R = 0时则可以向选中的寄存器单元写入数据,若W/R= 1则可以从选中的寄存器单元读出数据;命令寄存器单元中的五位选择控制位RS [4:0], RS [4 0]可以选择控制32个寄存器单元,控制寄存器单元和状态寄存器单元是这32个寄存器单元中的两个,嵌入式处理器复位后W/R位,RS [4:0]均被清零。
控制寄存器单元中的两位组合事件控制位SQC [1:0],SQC = 2’b00、SQC = 2’b01、 SQC = 2’ blO、SQC = 2’ bll分别对应控制不同的组合事件的发生,嵌入式处理器复位后 SQC [1:0]被清零。
状态寄存器单元中的硬件断点事件发生标识位ΜΒ0,当硬件断点事件发生并被嵌入式处理器响应则MBO被置1状态寄存器单元中的追踪事件发生标识位T0,当追踪事件发生并被嵌入式处理器响应则TO位被置1 ;状态寄存器单元中的两个一位的组合事件发生标识位SQA和SQB,当硬件断点事件和追踪事件构成的组合事件发生并被嵌入式处理器响应则SQA和SQB会被相应的置1 ;状态寄存器中的MB0、T0、SQA、SQB在嵌入式处理器复位后均被清零。
优选的,在先调试多事件控制过程为当SQC[1:0] = 2’b00,并且第一硬件断点事件、第二硬件断点事件、追踪事件都被使能。当第一硬件断点事件、第二硬件断点事件、追踪事件满足各自的发生条件时均可以独自发生,相互之间不受影响。
当SQC[1:0] = 2’b01,并且第一硬件断点事件、第二硬件断点事件、追踪事件都被使能。此种情况下,追踪事件的发生必须首先发生一次第二硬件断点事件,其中第二硬件断点事件不被处理器响应,随后发生的追踪事件被处理器响应。
当SQC[1:0] = 2’bl0,并且第一硬件断点事件、第二硬件断点事件、追踪事件都被使能。此种情况下,第二硬件断点事件发生必须首先发生一次第一硬件断点事件,其中第一硬件断点事件不被处理器响应,随后发生的第二硬件断点事件被处理器响应。
当SQC[1:0] = 2’bll,并且第一硬件断点事件、第二硬件断点事件、追踪事件都被使能。此种情况综合了以上两种组合事件,追踪事件必须要在先发生一次第一硬件断点事件再发生一次第二硬件断点事件的激发下才可能发生,其中第一硬件断点事件和第二硬件断点事件发生均不被嵌入式处理器响应,随后发生的追踪事件被处理器响应。
优选的,在线调试实时监视过程为当SQC[1:0] =2’b00时,状态寄存器单元中的 SQA和SQB位均保持不变;第一硬件断点事件和第二硬件断点事件至少一个发生并被CPU 响应则硬件断点事件发生标识位MBO被置1 ;追踪事件发生并被CPU响应则追踪事件发生标识位TO被置1。
当SQC[1:0] = 2’ b01时,组合事件中追踪事件发生并被嵌入式处理器响应,状态寄存器单元中的SQA保持不变,SQB被置1 ;硬件断点事件发生标识位MBO保持不变;追踪事件发生标识位TO被置1。
当SQC[1:0] = 2'blO时,组合事件中第二硬件断点事件发生并被嵌入式处理器响应,状态寄存器单元中的SQA被置1,SQB保持不变;硬件断点事件发生标识位MBO被置1 ; 追踪事件发生标识位TO保持不变。
当SQC[1:0] = 2’ bll时,组合事件中追踪事件发生并被嵌入式处理器响应,状态寄存器单元中的SQA和SQB均被置1 ;硬件断点事件发生标识位MBO保持不变;追踪事件发生标识位TO被置1。
本发明中,硬件断点事件和追踪事件的总数为η,η为自然数,且η > 2,组合事件发生情况的数量为m,组合事件控制位的数量a,满足加^ m,使得组合事件控制位能够对应控制不同组合事件的发生。
本发明的有益效果为控制硬件断点事件和追踪事件按照特定的组合顺序发生并进行实时监视,有效降低在线调试的难度。


图1为JTAG的TAP状态机接口示意图。
图2为软件调试人员控制三种硬件事件的流程示意图。
图3为寄存器单元控制逻辑示意图。
图4为三种硬件事件组合发生的总体逻辑示意图。
图5为SQC[1:0] = 2’ b00时硬件事件独立发生的逻辑示意图。
图6为SQC[1:0] = 2’ b01时第二硬件断点事件和追踪事件构成的组合事件发生的逻辑示意图。
图7为SQC[1:0] = 2’ blO时第一硬件断点事件和第二硬件断点事件构成的组合事件发生的逻辑示意图。
图8为SQC[1:0] = 2’ bll时第一硬件断点事件、第二硬件断点事件、追踪事件构成的组合事件发生的逻辑示意图。
具体实施方式
以下结合附图对本发明作进一步描述
参照图1 图8,一种在线调试多事件控制和实时监视的接口装置。
所述的三种硬件事件,如图2,三种硬件事件是由嵌入式处理器内部相互独立的逻辑单元硬件断点事件发生器A (图2-7),硬件断点事件发生器B (图2-8),追踪事件发生器 (图2-9)来产生。
所述的JTAG接口单元,如图1所示,JTAG接口单元主要包括一个含有16个状态的 TAP状态机来控制嵌入式处理器数据的输入输出,JTAG接口单元有五根信号线TCLK、TMS、 TRST、TDI、TD0连接到外部引脚。其中,TCLK为JTAG接口单元提供外部驱动时钟;TMS驱动 TAP状态机;TRST用来复位JTAG接口单元;TDI串行地向嵌入式处理器输入数据;TDO串行地从嵌入式处理器输出数据。这五个引脚和在线调试器ICE(图2-2、连接,调试人员通过上面的连接和嵌入式处理器进行交互通信。
所述的命令寄存器单元(图2-4)和其中的读写控制位W/R,寄存器选择控制位 RS W 0],如图1所示,JTAG接口单元里面通过TAP状态机对顶操作的控制通路向命令寄存器单元(图2-4)里面写入数据,在Update顶状态将数据更新到命令寄存器单元(图2_4) 使其有效;如图3所示,寄存器选择控制位RSW:0]选择一个目的操作寄存器,在本发明中主要用来选择控制寄存器单元和状态寄存器单元作为目的操作寄存器;如图3所示,读写控制位W/R,当W/R = 0时对选中的目的操作寄存器进行写操作,当W/R = 1时对选中的目的操作寄存器进行读操作。
所述的控制寄存器单元(图2-5),如图3所示,控制寄存器单元被选中作为目的操作寄存器时,根据命令寄存器单元里面的读写控制位W/R来决定对控制寄存器单元进行读或者写操作;如图1所示,JTAG接口单元通过和IDE的接口接收上位机发送来的数据(或者向上位机发送数据),接收到上位机发送来的数据通过TAP状态机对DR的操作串行的写入控制寄存器,向上位机发送的数据通过TAP状态机对DR的操作串行的从控制寄存器里面读出,数据在Update DR状态写入命令寄存器单元或者从命令寄存器单元读出。
所述的状态寄存器单元(图2-6),如图3所示,状态寄存器单元被选中作为目的操作寄存器时,状态寄存器是只读寄存器,此时无论W/R位是1或者0,都只能对状态寄存器进行读操作;如图1所示,JTAG接口单元里面通过TAP状态机对DR的操作串行的从状态寄存器里面读出数据,数据在Update DR状态从状态寄存器单元读出。如图2_1、图2_2、图2_3 所示,从状态寄存器单元读出的数据通过JTAG接口单元和ICE的连接发送给上位机。
所述的控制寄存器单元(图2- 里面的组合事件控制位SQC[1:0]和状态寄存器 (图2-6)里面的组合事件标识位、硬件事件标识位,如图4 图8所示。
当SQC[1:0] = 2’ b00时,如图5所示,第一硬件断点事件,第二硬件断点事件,追踪事件各自相对独立发生。SQA和SQB保持不变;第一硬件断点事件发生后会被嵌入式处理器响应,MBO被置1 ;第二硬件断点事件发生后会被嵌入式处理器响应,MBO被置1 ;追踪事件发生后会被嵌入式处理器响应,TO被置1。
当SQC[1:0] = 2’ b01时,如图6所示,第二硬件断点事件和追踪事件构成一个组合,只有在发生一个第二硬件断点事件以后追踪事件才可能发生,当追踪事件发生并被嵌入式处理器响应,状态寄存器单元里面的组合事件标识位SQA保持不变,SQB被置1 ;第一硬件断点事件发生会被嵌入式处理器响应,MBO被置1 ;第二硬件断点事件发生后不会被嵌入式处理器响应,MBO保持不变;追踪事件发生后会被嵌入式处理器响应,TO被置1。
当SQC[1:0] = 2’ blO时,如图7所示,第一硬件断点事件和第二硬件断点事件构成一个组合,只有在发生一个第一硬件断点事件以后第二硬件断点事件才可能发生,当第二硬件断点事件发生后会被嵌入式处理器响应,状态寄存器单元里面的组合事件标识位 SQA被置1,SQB保持不变,MBO被置1 ;第一硬件断点事件发生后不会被处理器响应,MBO保持不变;追踪事件发生后会被嵌入式处理器响应,TO被置1。
当SQC[1:0] =2’bll时,如图8所示,此种情况综合了以上两种组合事件,第一硬件断点事件、第二硬件断点事件、追踪事件构成一个组合,只有在发生一个第一硬件断点事件再发生一个第二硬件断点事件的激发下,追踪事件才有可能发生,追踪事件发生后会被嵌入式处理器响应,状态寄存器单元中的组合事件标识位SQA、SQB均被置1,TO位被置1 ; 第一硬件断点事件和第二硬件断点事件的发生均不会被嵌入式处理器响应,MBO保持不变。
通过实施例描述了本发明,附图中描述的本发明中涉及到的命令寄存器单元和其中的控制位W/R、RS [4:0],控制寄存器单元和其中的控制位SQC [1]、SQC
,状态寄存器单元和其中的标识位SQA、SQB、MB0、T0,这些寄存器单元的位数可以根据编程模型的需要自由调整,控制位和标识位在相应寄存器里面的位置也可以自由存在,SQC[1]和SQC
可以按照任意自由的方式来控制三种硬件事件的组合,所有的这些变形和变化都应该包括在本发明的权利要求里面。
权利要求
1.一种在线调试多事件控制和实时监视的接口装置,其特征在于所述的接口装置包括硬件事件单元,包括硬件断点事件发生器和追踪事件发生器,硬件断点事件由硬件断点事件发生器产生;追踪事件由追踪事件发生器产生;JTAG接口单元,基于IEEE Std 1149. 1协议的标准通信接口,在线调试中用于接收上位机发送给嵌入式处理器的控制命令和将嵌入式处理器状态信息输出给上位机;命令寄存器单元,用于通过JTAG接口单元接收上位机发送的选择控制寄存器单元并对控制寄存器单元进行写操作的命令;通过JTAG接口单元接收上位机发送的选择状态寄存器单元并对状态寄存器单元进行读操作的命令;控制寄存器单元,用于当命令寄存器单元接收到上位机通过JTAG接口单元发送的选中控制寄存器单元并对控制寄存器单元进行写操作的命令,控制寄存器单元开始接收上位机通过JTAG接口单元发送的命令进而来控制第一硬件断点事件、第二硬件断点事件、追踪事件以及第一硬件断点事件、第二硬件断点事件和追踪事件构成的组合事件的有效与无效;状态寄存器单元,用于保存所述第一硬件断点事件、第二硬件断点事件、追踪事件和组合事件发生后嵌入式处理器的状态信息。
2.如权利要求1所述的在线调试多事件控制和实时监视的接口装置,其特征在于所述追踪事件发生器有一个,所述硬件断点事件发生器有至少两个以上。
3.如权利要求2所述的在线调试多事件控制和实时监视的接口装置,其特征在于所述追踪事件发生器有一个,所述硬件断点事件发生器有两个,分别是第一硬件断点事件发生器和第二硬件断点事件发生器。
4.如权利要求1 3之一所述的在线调试多事件控制和实时监视的接口装置,其特征在于所述命令寄存器单元中的一位读写控制位W/R,当W/R = 0时则向选中的寄存器单元写入数据,若W/R= 1则从选中的寄存器单元读出数据;命令寄存器单元中的五位选择控制位RS[4:0],RS[40]选择控制32个寄存器单元,控制寄存器单元和状态寄存器单元是这32 个寄存器单元中的两个。
5.如权利要求1 3之一所述的在线调试多事件控制和实时监视的接口装置,其特征在于所述控制寄存器单元中的两位组合事件控制位SQC[1:0],SQC = 2’ b00、SQC = 2’ bOUSQC = 2’ blO、SQC = 2’ bll分别对应控制不同的组合事件的发生。
6.如权利要求1 3之一所述的在线调试多事件控制和实时监视的接口装置,其特征在于所述状态寄存器单元中的硬件断点事件发生标识位ΜΒ0,当硬件断点事件发生并被嵌入式处理器响应则MBO被置1 ;状态寄存器单元中的追踪事件发生标识位T0,当追踪事件发生并被嵌入式处理器响应则TO位被置1 ;状态寄存器单元中的两个一位的组合事件发生标识位SQA和SQB,当硬件断点事件和追踪事件构成的组合事件发生并被嵌入式处理器响应则SQA和SQB会被相应的置1。
7.如权利要求5所述的在线调试多事件控制和实时监视的接口装置,其特征在于当 SQC[1:0] = 2’ b00,并且第一硬件断点事件、第二硬件断点事件、追踪事件都被使能,所述第一硬件断点事件、第二硬件断点事件和追踪事件的相互独立发生,并且都会被嵌入式处理器响应;当SQC[1:0] = 2’ bOl,并且第一硬件断点事件、第二硬件断点事件、追踪事件都被使能,追踪事件的发生必须首先发生一次第二硬件断点事件,其中第二硬件断点事件不被处理器响应,随后发生的追踪事件被处理器响应;当SQC[1:0] = 2’ blO,并且第一硬件断点事件、第二硬件断点事件、追踪事件都被使能,第二硬件断点事件发生必须首先发生一次第一硬件断点事件,其中第一硬件断点事件不被处理器响应,随后发生的第二硬件断点事件被处理器响应;当SQC[1:0] = 2’ bll,并且第一硬件断点事件、第二硬件断点事件、追踪事件都被使能,追踪事件必须要在先发生一次第一硬件断点事件再发生一次第二硬件断点事件的激发下才可能发生,其中第一硬件断点事件和第二硬件断点事件发生均不被嵌入式处理器响应,随后发生的追踪事件被处理器响应。
8.如权利要求5所述的在线调试多事件控制和实时监视的接口装置,其特征在于当 SQC[1:0] = 2’ b00时,状态寄存器单元中的SQA和SQB位保持不变;第一硬件断点事件和第二硬件断点事件至少一个发生并被CPU响应则硬件断点事件发生标识位MBO被置1 ;追踪事件发生并被CPU响应则追踪事件发生标识位TO被置1 ;当SQC[1:0] = 2’ bOl时,组合事件中追踪事件发生并被嵌入式处理器响应,状态寄存器单元中的SQA保持不变,SQB被置1 ;硬件断点事件发生标识位MBO保持不变;追踪事件发生标识位TO被置1 ;当SQC[1:0] = 2’ blO时,组合事件中第二硬件断点事件发生并被嵌入式处理器响应, 状态寄存器单元中的SQA被置1,SQB保持不变;硬件断点事件发生标识位MBO被置1 ;追踪事件发生标识位TO保持不变;当SQC[1:0] = 2’ bll时,组合事件中追踪事件发生并被嵌入式处理器响应,状态寄存器单元中的SQA和SQB均被置1 ;硬件断点事件发生标识位MBO保持不变;追踪事件发生标识位TO被置1。
全文摘要
一种在线调试多事件控制和实时监视的接口装置,包括硬件事件单元,JTAG接口单元,用于线调试中用于接收上位机发送给处理器的控制命令和将处理器状态信息输出给上位机;命令寄存器单元,用于接收上位机发送的选择控制寄存器单元并对控制寄存器单元进行写操作的命令;控制寄存器单元,用于控制第一硬件断点事件、第二硬件断点事件、追踪事件以及第一硬件断点事件、第二硬件断点事件和追踪事件构成的组合事件的有效与无效;状态寄存器单元,用于保存事件发生后嵌入式处理器的状态信息。本发明控制硬件断点事件和追踪事件按照特定的组合顺序发生并进行实时监视,有效降低在线调试的难度。
文档编号G06F11/36GK102495792SQ20111034529
公开日2012年6月13日 申请日期2011年11月4日 优先权日2011年11月4日
发明者严晓浪, 李春强, 谭小虎 申请人:杭州中天微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1