CN101826051A - 一种用于调试程序的硬件断点电路 - Google Patents

一种用于调试程序的硬件断点电路 Download PDF

Info

Publication number
CN101826051A
CN101826051A CN 201010137820 CN201010137820A CN101826051A CN 101826051 A CN101826051 A CN 101826051A CN 201010137820 CN201010137820 CN 201010137820 CN 201010137820 A CN201010137820 A CN 201010137820A CN 101826051 A CN101826051 A CN 101826051A
Authority
CN
China
Prior art keywords
breakpoint
door
information
input end
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201010137820
Other languages
English (en)
Other versions
CN101826051B (zh
Inventor
蒋小梅
于麦口
肖佐楠
郑茳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCore Technology Suzhou Co Ltd
Original Assignee
CCore Technology Suzhou Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CCore Technology Suzhou Co Ltd filed Critical CCore Technology Suzhou Co Ltd
Priority to CN 201010137820 priority Critical patent/CN101826051B/zh
Publication of CN101826051A publication Critical patent/CN101826051A/zh
Application granted granted Critical
Publication of CN101826051B publication Critical patent/CN101826051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种用于调试程序的硬件断点电路,包括:用于存储第一断点条件信息的第一断点寄存器;第一断点比较器;用于存储第二断点条件信息的第二断点寄存器;第二断点比较器;断点控制寄存器,用于控制第一断点和第二断点的发生次序;第一与门;第二与门;第三与门,用于当来自第二或门的信息和第一断点条件发生信号均有效时,则输出第一断点请求信号;第四与门,用于当来自第三或门的信息和第二断点条件发生信号均有效时,则输出第二断点请求信号;第一或门,用于向微控制器发出断点请求信号。本发明可以等到某个断点条件发生后才允许其它断点发生时发送断点请求,给仿真调试带了很大的方便,缩短了产品开发的周期。

Description

一种用于调试程序的硬件断点电路
技术领域
本发明涉及集成电路测试技术领域,尤其涉及一种用于调试程序的硬件断点电路。
背景技术
20世纪80年代以来,随着计算机嵌入式系统的广泛应用,微控制器(MCU,microcontroller unit/单片机)得到飞速的发展。早期的单片机是按照嵌入式应用技术要求设计的计算机的单芯片化集成电路器件,也就是电子计算机的全部特性器件都集成到一片芯片上,故被形象的称为单片机。随着单片机应用范围的不断加大,对于其仿真调试功能的要求也逐渐提高。
仿真调试功能是指程序执行到指定行时,或存取预先设定的地址或数据时,停止执行程序,一边通知外部,一边参照并改变当时的存储器的状态或变量的内容。断点可以看作是程序停止执行的位置,并将微控制器的控制权切换到在线仿真调试模块,此时,微控制器由正常模式变为调试模式。调试模式时微控制器不执行程序,而是在线仿真调试模块进行操作。我们会在调试模式下通过JTAG总线控制在线仿真调试模块,读写在线仿真调试模块和微控制器内的寄存器,然后让微控制器进入正常模式。在正常模式下,微控制器正常执行程序。现有技术,采用硬件形式,这些断点可以具体实现为针对数据、指令或地址的断点寄存器,可以用必要的数据、指令或地址对这些断点寄存器进行配置,以设置适当断点。例如,配置好的地址断点寄存器与地址总线上的地址内容相匹配时,一个基于地址的断点条件就发生了。现有技术中,在线仿真调试模块往往是对相关断点寄存器进行配置后,只要检测到断点条件发生就能发送断点请求,这不能满足断点仿真调试的灵活性。因此,如何开发一种具有灵活断点功能的在线仿真调试模块成为本领域技术人员努力的方向。
发明内容
本发明目的是提供一种用于调试程序的硬件断点电路,该硬件断点电路可根据设置的多个断点的发生次序,决定何时向微控制器发送断点请求。
为达到上述目的,本发明采用的技术方案是:
一种用于调试程序的硬件断点电路,包括:
用于存储第一断点条件信息的第一断点寄存器;
第一断点比较器,根据来自总线的信息与所述第一断点寄存器的信息的比较结果,产生第一断点条件发生信号;
用于存储第二断点条件信息的第二断点寄存器;
第二断点比较器,根据来自总线的信息和所述第二断点寄存器的信息的比较结果,产生第二断点条件发生信号;
断点控制寄存器,用于控制第一断点和第二断点的发生次序,该断点控制寄存器被配置为第一控制信息或第二控制信息;第一控制信息被配置:表示第二断点条件已经发生且第一断点条件发生时向微控制器发送断点请求信号;第二控制信息被配置:表示第一断点条件已经发生且第二断点条件发生时向微控制器发送断点请求信号;
第一与门,该第一与门的一个输入端接收来自所述断点控制寄存器的第一控制信息,该第一与门的另一个输入端用于接收所述第二断点条件发生信号;
第二与门,该第二与门的一个输入端接收来自所述断点控制寄存器的第二控制信息,该第二与门的另一个输入端用于接收所述第一断点条件发生信号;
第三与门,该第三与门的一个输入端接收来自所述第一与门的信息,该第三与门的另一个输入端接收来自所述第一断点比较器的第一断点条件发生信号,当来自第一与门的信息和第一断点条件发生信号均有效时,则输出第一断点请求信号;
第四与门,该第四与门的一个输入端接收来自所述第二与门的信息,该第四与门的另一个输入端接收来自所述第二断点比较器的第二断点条件发生信号,当来自第二与门的信息和第二断点条件发生信号均有效时,则输出第二断点请求信号;
第一或门,该第一或门的一个输入端与所述第三与门的输出端连接,该第一或门的另一个输入端与所述第四与门的输出端连接,用于向微控制器发出断点请求信号。
上述技术方案中的有关内容解释如下:
1、上述方案中,所述断点控制寄存器还可被配置为第三控制信息,且所述硬件断点电路还包括第二或门、第三或门;
所述第三控制信息被配置:表示第一断点条件发生或第二断点条件发生时都可以向微控制器发送断点请求信号;
所述第二或门的一个输入端与第一与门的输出端连接,第二或门的另一个输入端接收来自断点控制寄存器的第三控制信息,第二或门的输出端连接到第三与门的一个输入端;
所述第三或门的一个输入端与第二与门的输出端连接,第三或门的另一个输入端接收来自断点控制寄存器的第三控制信息,第三或门的输出端连接到第四与门的一个输入端。
2、上述方案中,所述总线的信息为数据总线的信息、控制总线的信息、地址总线的信息中的一种。
3、上述方案中,还包括:用于屏蔽断点总线信息中某些位的第一断点屏蔽寄存器,该第一断点屏蔽寄存器连接到所述第一断点比较器的输入端;用于屏蔽断点总线信息中某些位的第二断点屏蔽寄存器,该第二断点屏蔽寄存器连接到所述第二断点比较器的输入端。
由于上述技术方案运用,本发明与现有技术相比,可以实现:等到某个断点条件发生后才允许其他断点条件发生时发送断点请求,给仿真调试带了很大的方便,缩短了产品开发的周期。这样能检测到连续事件的发生。比如我们需要第二断点条件发生在第一断点条件之后才发送断点请求,则可以通过将断点控制寄存器配置为第二控制信息来实现。比如我们需要第一断点条件发生在第二断点条件之后才发送断点请求,则可以通过将断点控制寄存器配置为第一控制信息来实现。
附图说明
附图1为JTAG仿真调试系统示意图;
附图2为本发明断点控制寄存器的设置示意图;
附图3为本发明硬件断点电路的结构原理图。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例:一种用于调试程序的硬件断点电路
用于存储第一断点条件信息的第一断点寄存器;
第一断点比较器,根据来自总线的信息与所述第一断点寄存器的信息的比较结果,产生第一断点条件发生信号;
用于存储第二断点条件信息的第二断点寄存器;
第二断点比较器,根据来自总线的信息和所述第二断点寄存器的信息的比较结果,产生第二断点条件发生信号;
断点控制寄存器,用于控制第一断点和第二断点的发生次序,该断点控制寄存器被配置为第一控制信息或第二控制信息;第一控制信息被配置:表示第二断点条件已经发生且第一断点条件发生时向微控制器发送断点请求信号;第二控制信息被配置:表示第一断点条件已经发生且第二断点条件发生时向微控制器发送断点请求信号;
第一与门,该第一与门的一个输入端接收来自所述断点控制寄存器的第一控制信息,该第一与门的另一个输入端用于接收所述第二断点条件发生信号;
第二与门,该第二与门的一个输入端接收来自所述断点控制寄存器的第一控制信息,该第二与门的另一个输入端用于接收所述第一断点条件发生信号;
第三与门,该第三与门的一个输入端接收来自所述第一与门的信息,该第三与门的另一个输入端接收来自所述第一断点比较器的第一断点条件发生信号,当来自第一与门的信息和第一断点条件发生信号均有效时,则输出第一断点请求信号;
第四与门,该第四与门的一个输入端接收来自所述第二与门的信息,该第四与门的另一个输入端接收来自所述第二断点比较器的第二断点条件发生信号,当来自第二与门的信息和第二断点条件发生信号均有效时,则输出第二断点请求信号;
第一或门,该第一或门的一个输入端与所述第三与门的输出端连接,该第一或门的另一个输入端与所述第四与门的输出端连接,用于向微控制器发出断点请求信号。
断点控制寄存器还被配置为第三控制信息,且所述硬件断点电路增加第二或门、第三或门;所述第三控制信息被配置:表示第一断点条件发生或第二断点条件发生时都可以向微控制器发送断点请求信号;
所述第二或门的一个输入端与第一与门的输出端连接,第二或门的另一个输入端接收来自断点控制寄存器的第三控制信息,第二或门的输出端连接到第三与门的一个输入端;
所述第三或门的一个输入端与第二与门的输出端连接,第三或门的另一个输入端接收来自断点控制寄存器的第三控制信息,第三或门的输出端连接到第四与门的一个输入端。
用于屏蔽断点总线信息中某些位的第一断点屏蔽寄存器,该第一断点屏蔽寄存器连接到所述第一断点比较器的输入端;用于屏蔽断点总线信息中某些位的第二断点屏蔽寄存器,该第二断点屏蔽寄存器连接到所述第二断点比较器的输入端。
所述总线的信息为数据总线的信息、控制总线的信息、地址总线的信息中的一种,其各自的解决本发明技术问题的方式原理及结构的均相同。
本实施例上述内容具体工作过程如下。
一种微控制器在线仿真调试模块,见图1。包括JTAG端口控制器和硬件断点电路。JTAG端口控制器用来收集从JTAG总线发送来的调试指令,这些调试指令用于读写硬件断点电路和微控制器内的相关寄存器。硬件断点电路监视微控制器的地址总线的实时变化,根据断点寄存器和断点屏蔽寄存器的值来检测断点条件何时发生,并根据断点控制寄存器的值决定是否向微控制器发送断点请求。如果微控制器接收到断点请求,则从正常模式进入调试模式。正常模式时微控制器正常执行程序,调试模式时微控制器不执行程序,而在线仿真调试模块会进行一系列操作,比如通过JTAG总线读写寄存器。
硬件断点电路包含如下几个寄存器:
第一断点寄存器即32位第一断点地址寄存器,第二断点寄存器即32位第二断点地址寄存器,用于存储断点的地址内容。
第一断点屏蔽寄存器即32位第一断点地址屏蔽寄存器,第二断点屏蔽寄存器即32位第二断点地址屏蔽寄存器,用于屏蔽地址总线的某些位。例如不需要检测地址总线的低8位时,地址屏蔽寄存器的低8位都被置为1。如不需要检测地址总线的最高位,则只需要将地址屏蔽寄存器的最高位置为1。除去不需要检测的地址总线的某些位,地址总线剩下的其他位必须与地址寄存器的对应位完全相等才能让断点条件发生。例如,地址总线的内容为32’b0001_0010_0011_0100_0101_0110_0111_0101,第一断点地址寄存器内容为32’b0001_0010_0011_0100_0101_0110_0111_1010,第一断点地址屏蔽寄存器内容为32’b0000_0000_0000_0000_0000_0000_0000_1111。因为第一断点地址屏蔽寄存器的低4位均为1,表明地址总线的低4位不用与第一断点地址寄存器的低4位进行比较,而地址总线的高28位和第一断点地址寄存器的高28位相等,所以第一断点的断点条件发生。这些是通过图3中的第一断点比较器实现的。图3中的第二断点比较器用于比较地址总线、第二断点地址寄存器和第二断点地址屏蔽寄存器,从而得到第二断点的断点条件发生信号。
16位断点控制寄存器,见图2。
第0到第1位为连续断点控制位(SBC[1:0],sequential breakpoint controlbits)。
00:第三控制信息。表示第一断点条件发生或第二断点条件发生时都可以向微控制器发送断点请求信号。换句话说,第一断点和第二断点的连续断点控制条件均满足,所以第一断点条件或第二断点条件发生时,都可以通过第一或门向微控制器发送断点请求。
01:第二控制信息。表示第一断点条件已经发生且第二断点条件发生时向微控制器发送断点请求信号。换句话说,第一断点已经发生则第二断点的连续断点控制条件满足,而第一断点的连续断点控制条件永远不满足,所以第一断点条件即使发生,也不能向微控制器发送断点请求,而第二断点条件发生时如果第二断点的连续断点控制条件已满足则可以通过第一或门向微控制器发送断点请求。
10:第一控制信息。表示第二断点条件已经发生且第一断点条件发生时向微控制器发送断点请求信号。换句话说,第二断点已经发生则第一断点的连续断点控制条件满足,而第二断点的连续断点控制条件永远不满足,所以第二断点条件即使发生,也不能向微控制器发送断点请求,而第一断点条件发生时如果第一断点的连续断点控制条件已满足则可以通过第一或门向微控制器发送断点请求。
11:保留(Reserved)。
(2)第2到第15位:保留(Reserved)。
硬件断点电路的实现方式见图3。
我们先来看第一断点的相关操作。首先,微控制器的地址总线与第一断点地址屏蔽寄存器和第一断点地址寄存器通过第一断点比较器进行比较,如果匹配则第一断点的断点条件发生。
如果断点控制寄存器的SBC位为00,通过第二或门直接让第一断点的连续断点控制条件满足。如果断点控制寄存器的SBC位为10,且第二断点的断点条件已经发生,通过第一与门和第二或门让第一断点的连续断点控制条件满足。通过这样的方式,就可以限定必须等到第二断点的断点条件已经发生后,第一断点的断点条件发生时才能向微控制器发送断点请求。
我们再来看第二断点的相关操作。
第二断点的断点条件发生同理于第一断点,连续断点控制条件不同于第一断点。如果断点控制寄存器的SBC位为00,通过第三或门直接让第二断点的连续断点控制条件满足。如果断点控制寄存器的SBC位为01,且第一断点的断点条件已经发生,通过第二与门和第三或门让第二断点的连续断点控制条件满足。通过这样的方式,就可以限定必须等到第一断点的断点条件已经发生后,第二断点的断点条件发生时才能向微控制器请求断点操作。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (4)

1.一种用于调试程序的硬件断点电路,其特征在于:包括:
用于存储第一断点条件信息的第一断点寄存器;
第一断点比较器,根据来自总线的信息与所述第一断点寄存器的信息的比较结果,产生第一断点条件发生信号;
用于存储第二断点条件信息的第二断点寄存器;
第二断点比较器,根据来自总线的信息和所述第二断点寄存器的信息的比较结果,产生第二断点条件发生信号;
断点控制寄存器,用于控制第一断点和第二断点的发生次序,该断点控制寄存器被配置为第一控制信息或第二控制信息;第一控制信息被配置:表示第二断点条件已经发生且第一断点条件发生时向微控制器发送断点请求信号;第二控制信息被配置:表示第一断点条件已经发生且第二断点条件发生时向微控制器发送断点请求信号;
第一与门,该第一与门的一个输入端接收来自所述断点控制寄存器的第一控制信息,该第一与门的另一个输入端用于接收所述第二断点条件发生信号;
第二与门,该第二与门的一个输入端接收来自所述断点控制寄存器的第二控制信息,该第二与门的另一个输入端用于接收所述第一断点条件发生信号;
第三与门,该第三与门的一个输入端接收来自所述第一与门的信息,该第三与门的另一个输入端接收来自所述第一断点比较器的第一断点条件发生信号,当来自第一与门的信息和第一断点条件发生信号均有效时,则输出第一断点请求信号;
第四与门,该第四与门的一个输入端接收来自所述第二与门的信息,该第四与门的另一个输入端接收来自所述第二断点比较器的第二断点条件发生信号,当来自第二与门的信息和第二断点条件发生信号均有效时,则输出第二断点请求信号;
第一或门,该第一或门的一个输入端与所述第三与门的输出端连接,该第一或门的另一个输入端与所述第四与门的输出端连接,用于向微控制器发出断点请求信号。
2.根据权利要求1所述的硬件断点电路,其特征在于:所述断点控制寄存器还可被配置为第三控制信息,且所述硬件断点电路还包括第二或门、第三或门;
所述第三控制信息被配置:表示第一断点条件发生或第二断点条件发生时都可以向微控制器发送断点请求信号;
所述第二或门的一个输入端与第一与门的输出端连接,第二或门的另一个输入端接收来自断点控制寄存器的第三控制信息,第二或门的输出端连接到第三与门的一个输入端;
所述第三或门的一个输入端与第二与门的输出端连接,第三或门的另一个输入端接收来自断点控制寄存器的第三控制信息,第三或门的输出端连接到第四与门的一个输入端。
3.根据权利要求1所述的硬件断点电路,其特征在于:所述总线的信息为数据总线的信息、控制总线的信息、地址总线的信息中的一种。
4.根据权利要求1所述的硬件断点电路,其特征在于:还包括:用于屏蔽断点总线信息中某些位的第一断点屏蔽寄存器,该第一断点屏蔽寄存器连接到所述第一断点比较器的一个输入端;用于屏蔽断点总线信息中某些位的第二断点屏蔽寄存器,该第二断点屏蔽寄存器连接到所述第二断点比较器的一个输入端。
CN 201010137820 2010-03-23 2010-03-23 一种用于调试程序的硬件断点电路 Active CN101826051B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010137820 CN101826051B (zh) 2010-03-23 2010-03-23 一种用于调试程序的硬件断点电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010137820 CN101826051B (zh) 2010-03-23 2010-03-23 一种用于调试程序的硬件断点电路

Publications (2)

Publication Number Publication Date
CN101826051A true CN101826051A (zh) 2010-09-08
CN101826051B CN101826051B (zh) 2012-07-04

Family

ID=42689975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010137820 Active CN101826051B (zh) 2010-03-23 2010-03-23 一种用于调试程序的硬件断点电路

Country Status (1)

Country Link
CN (1) CN101826051B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154183A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器嵌入式在线仿真调试系统
CN101667154A (zh) * 2004-04-29 2010-03-10 爱特梅尔公司 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
CN101673221A (zh) * 2009-10-22 2010-03-17 同济大学 一种嵌入式片上多处理器的中断处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667154A (zh) * 2004-04-29 2010-03-10 爱特梅尔公司 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
CN101154183A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器嵌入式在线仿真调试系统
CN101673221A (zh) * 2009-10-22 2010-03-17 同济大学 一种嵌入式片上多处理器的中断处理方法

Also Published As

Publication number Publication date
CN101826051B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102360329B (zh) 总线监控与调试控制装置及进行总线监控与总线调试的方法
CN103376400B (zh) 芯片测试方法及芯片
CN107992390B (zh) 一种基于片上总线的芯片调试方法
CN102393656A (zh) 一种基于fpga的模块化机器人嵌入式多核主控制器
CN103941619B (zh) 一种基于fpga可重构的微机保护的开发平台
CN103440216A (zh) 一种通过i2c从设备调试mcu的芯片及方法
CN103246588B (zh) 一种自校验串行总线控制器和自校验串行总线实现方法
CN101458652A (zh) 微控制器嵌入式在线仿真调试系统
CN102819232A (zh) 一种飞控计算机的便携式监控调试系统
CN101458725A (zh) 微控制器芯片及其调试方法
CN108197699A (zh) 针对卷积神经网络硬件加速器的调试模块
CN102636987B (zh) 双重化控制装置
CN101206614A (zh) 仿真特殊功能寄存器的仿真器
US20190271740A1 (en) Non-intrusive on-chip debugger with remote protocol support
CN109885466B (zh) 处理器c8000的仿真方法、系统及介质
RU2554569C2 (ru) Устройство для загрузки интегральной схемы soc и интегральная схема типа soc
CN104461796B (zh) 用于嵌入式8051cpu的jtag调试模块及调试方法
CN111367742A (zh) 调试mvp处理器的方法、装置、终端和计算机可读存储介质
CN103793263A (zh) 一种基于PowerPC处理器的DMA事务级建模方法
CN203191963U (zh) 含外部看门狗机制时的jtag口安全辅助电路
CN101814054B (zh) 一种用于调试微控制器的指令追踪控制器
CN101826051B (zh) 一种用于调试程序的硬件断点电路
CN108228314B (zh) 一种基于设备规约的虚拟原型错误检测方法
CN101847119B (zh) 一种用于仿真调试的硬件断点电路
CN201060393Y (zh) 一种8位在线调试微控制器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: Room C2031, Suzhou Pioneer Park, 209 Zhuyuan Road, Suzhou High-tech Zone, Jiangsu Province

Patentee after: Suzhou Guoxin Technology Co., Ltd.

Address before: Room C2031, Suzhou Pioneer Park, 209 Zhuyuan Road, Suzhou High-tech Zone, Jiangsu Province

Patentee before: C*Core Technology (Suzhou) Co., Ltd.

CP01 Change in the name or title of a patent holder