ARM核处理器芯片仿真器转让专利

申请号 : CN200910057653.2

文献号 : CN101968760B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许国泰

申请人 : 上海华虹集成电路有限责任公司

摘要 :

本发明公开了一种ARM核处理器芯片仿真器,包括:仿真芯片,隔离模块,JTAG调试模块;所述隔离模块受外部复位信号控制;当外部复位信号有效时,如果隔离模块接收到符合JTAG协议的全速运行或单步命令,则自动构成“错误命令”响应,并向JTAG调试模块返回该响应,且不向仿真芯片的JTAG模块发送任何命令;当外部复位信号无效时,如果隔离模块接收到符合JTAG协议的全速运行或单步命令,则原封不动地把接收到的命令再发送给仿真芯片的JTAG模块,如果隔离模块接收到仿真芯片的JTAG模块返回的响应,则也原封不动地把接收到的响应发送给JTAG调试模块。本发明能够避免在用户程序仿真调试过程中因误操作而导致关闭调试软件,提高调试效率。

权利要求 :

1.一种ARM核处理器芯片仿真器,包括仿真芯片,该仿真芯片包含有JTAG模块和芯片功能模块;其特征在于:所述仿真器还包括,通过第一JTAG接口与所述仿真芯片的JTAG模块相连接的隔离模块,通过第二JTAG接口与所述隔离模块相连接的JTAG调试模块;

所述隔离模块接收JTAG调试模块发出的命令并向JTAG调试模块返回响应,所述隔离模块向所述仿真芯片的JTAG模块发送命令并接收其返回的响应;

所述隔离模块受外部复位信号控制;当外部复位信号有效时,如果隔离模块接收到符合JTAG协议的全速运行或单步命令,则自动构成“错误命令”响应,并向JTAG调试模块返回该响应,且不向所述仿真芯片的JTAG模块发送任何命令;当外部复位信号无效时,如果隔离模块接收到符合JTAG协议的全速运行或单步命令,则原封不动地把接收到的命令再发送给仿真芯片的JTAG模块,如果隔离模块接收到所述仿真芯片的JTAG模块返回的响应,则也原封不动地把接收到的响应发送给JTAG调试模块。

2.如权利要求1所述的ARM核处理器芯片仿真器,其特征在于:所述仿真芯片受外部复位信号控制,当外部复位信号有效时,所述仿真芯片、JTAG模块和芯片功能模块都处于复位状态,不能工作;当外部复位信号无效时,所述仿真芯片、JTAG模块和芯片功能模块都处于运行状态,能够正常工作和通信;所述仿真芯片的JTAG模块在运行状态下,能接收符合JTAG协议的命令,并能返回符合JTAG协议的响应。

3.如权利要求1所述的ARM核处理器芯片仿真器,其特征在于:所 述JTAG调试模块通过数据通道从PC机端的调试软件接收指令并返回响应;所述JTAG调试模块将PC机端的调试软件发过来的命令转变成符合JTAG协议的命令后发送给隔离模块;所述JTAG调试模块将隔离模块返回的符合JTAG协议的响应转变成PC机端的调试软件要求的格式发送给PC机。

说明书 :

ARM核处理器芯片仿真器

技术领域

[0001] 本发明涉及集成电路芯片仿真器领域,特别是涉及一种ARM核处理器芯片仿真器。

背景技术

[0002] 32位ARM核处理器芯片(产品芯片)内有用户开发的用户程序,在用户程序的编写和调试中,所使用的工具一般是ARM核处理器芯片仿真器。由于ARM提供了JTAG(Joint Test Action Group,联合测试行动小组)这一国际标准测试协议用于实现ARM核处理器芯片的仿真调试,所以基于ARM核处理器芯片的仿真器通常都使用JTAG方式来实现用户程序的仿真调试。现有的以JTAG方式实现的ARM核处理器芯片仿真器,在结构上包括仿真芯片和JTAG调试模块。其工作过程是这样的,仿真芯片除了实现产品芯片各项功能的芯片功能模块部分外,还有用于实现JTAG仿真调试的JTAG模块,仿真芯片通过该JTAG模块接收JTAG调试模块的符合JTAG协议的命令,并向JTAG调试模块返回符合JTAG协议的响应。JTAG调试模块从PC(personal computer,个人计算机)机端接收指令,转变成符合JTAG协议的命令后发送给仿真芯片的JTAG模块;JTAG调试模块接收到仿真芯片的JTAG模块返回的符合JTAG协议的响应后,转变成PC调试软件要求的格式发送给PC机。
[0003] 但是,按照JTAG协议实现的仿真芯片中的JTAG模块和芯片功能模块,在仿真芯片的外部复位信号有效时都不能工作,而在JTAG模块不工作,也就是仿真芯片处于复位状态时,如果PC机端的调试软件通过JTAG调试模块向仿真芯片发出全速运行、单步等调试命令,就无法得到任何的响应反馈,PC机端的调试软件就会认为已经找不到仿真芯片,与仿真芯片失去通信连接,进行报错并要求关闭调试软件。而在实际应用中,外部复位信号有效,仿真芯片处于复位状态时,用户在PC机端的调试软件上误按全速运行、单步等按钮,发出全速运行、单步命令的情况时常发生,调试软件就会报错、关闭,用户必须重新打开调试软件、重新加载用户程序,非常不方便,给调试工作带来了不便,影响调试的效率。

发明内容

[0004] 本发明要解决的技术问题是提供一种ARM核处理器芯片仿真器,能够有效避免在用户程序仿真调试过程中因误操作而导致关闭调试软件,提高调试效率。
[0005] 为解决上述技术问题,本发明的ARM核处理器芯片仿真器,包括:仿真芯片,该仿真芯片包含有JTAG模块和芯片功能模块;
[0006] 所述仿真器还包括,通过第一JTAG接口与所述仿真芯片的JTAG模块相连接的隔离模块,通过第二JTAG接口与所述隔离模块相连接的JTAG调试模块;
[0007] 所述隔离模块接收JTAG调试模块发出的命令并向JTAG调试模块返回响应,所述隔离模块向所述仿真芯片的JTAG模块发送命令并接收其返回的响应;
[0008] 所述隔离模块受外部复位信号控制;当外部复位信号有效时,如果隔离模块接收到符合JTAG协议的全速运行或单步命令,则自动构成“错误命令”响应,并向JTAG调试模块返回该响应,且不向所述仿真芯片的JTAG模块发送任何命令;当外部复位信号无效时,如果隔离模块接收到符合JTAG协议的全速运行或单步命令,则原封不动地把接收到的命令再发送给仿真芯片的JTAG模块,如果隔离模块接收到所述仿真芯片的JTAG模块返回的响应,则也原封不动地把接收到的响应发送给JTAG调试模块。
[0009] 采用本发明的ARM核处理器芯片仿真器,即使仿真芯片的外部复位信号有效,仿真芯片处于复位状态时,即使用户在PC机端的调试软件上误按全速运行、单步等按钮,误发全速运行、单步命令,调试软件也只会发出“错误命令”的信息,而不会报错和关闭;且仿真芯片的外部复位信号无效后,用户可以继续在PC机端的调试软件上发全速运行、单步命令等调试命令,而无需重新打开调试软件或重新加载用户程序;方便了用户调试程序时对仿真器的使用,有利于加快程序的开发进度,提高调试的效率。

附图说明

[0010] 下面结合附图和具体实施方式对本发明作进一步详细的说明:
[0011] 附图是本发明的ARM核处理器芯片仿真器结构示意图。

具体实施方式

[0012] 在以下的描述中,均假设复位信号为“0”电平表示有效复位信号,复位信号为“1”电平表示无效复位信号。
[0013] 如图所示,本发明的ARM核处理器芯片仿真器1包括仿真芯片2、隔离模块3和JTAG调试模块4。所述的仿真芯片2按照JTAG协议来实现,包括用于实现产品芯片各项功能的芯片功能模块10,以及用于实现JTAG仿真调试的JTAG模块9。所述仿真芯片2的JTAG模块9通过标准的第一JTAG接口6与隔离模块3连接。所述仿真芯片2受外部复位信号5控制,当外部复位信号5为“0”电平时,所述仿真芯片2包括其中的JTAG模块9和芯片功能模块10都处于复位状态,不能工作;当外部复位信号5为“1”电平时,所述仿真芯片2包括其中的JTAG模块9和芯片功能模块10都处于运行状态,能够正常工作和通信。所述仿真芯片2内的JTAG模块9在运行状态下,即外部复位信号为“1”电平时,能接收符合JTAG协议的命令,并能返回符合JTAG协议的响应。所述隔离模块3通过标准的第二JTAG接口7与JTAG调试模块4连接,隔离模块3能通过该第二JTAG接口7接收JTAG调试模块4发过来的命令并返回响应。隔离模块3通过所述第一JTAG接口6向仿真芯片2的JTAG模块9发送命令并接收返回的响应。所述隔离模块3接受所述外部复位信号5的控制。当外部复位信号5为“0”电平时,所述隔离模块3如果接收到全速运行、单步等JTAG命令,则自动构成“错误命令”的响应,并通过所述第二JTAG接口7向JTAG调试模块4返回“错误命令”的响应,,而不向仿真芯片2的JTAG模块9发送任何命令;当外部复位信号为“1”电平时,所述隔离模块3起一个透明通道的作用,所述隔离模块3如果接收到全速运行、单步等JTAG命令,则原封不动地把接收到的命令再发送给仿真芯片2的JTAG模块9,所述隔离模块3如果接收到仿真芯片2的JTAG模块9返回的响应,则也原封不动地把接收到的响应发送给JTAG调试模块4。所述JTAG调试模块4有一个数据通道8与PC机连接,通过该数据通道8从PC机端的调试软件接收指令并返回响应;JTAG调试模块4通过所述第二JTAG接口7向隔离模块3发送命令并接收响应。所述JTAG调试模块4将PC机端的调试软件发过来的命令转变成符合JTAG协议的命令后发送给隔离模块3;JTAG调试模块4也会把隔离模块3返回的符合JTAG协议的响应转变成PC机端的调试软件要求的格式发送给PC机。
所述JTAG调试模块4与现有的ARM核处理器芯片仿真器中的JTAG调试模块在结构和功能上是一样。
[0014] 这样,虽然按照JTAG协议实现的仿真芯片2中的JTAG模块9和芯片功能模块10,在仿真芯片2的外部复位信号5为“0”电平时都不能工作,但是即使此时PC机端的调试软件发出全速运行、单步等调试命令,也不再是得不到任何的响应反馈,导致PC机端的调试软件报错并要求关闭;而是得到一个隔离模块3构成的“错误命令”响应,PC机端的调试软件就会停止当前操作,向用户发出“错误命令”的提示信息;程序指针和程序状态都保持在发出命令前的位置和状态,程序指针和程序状态都没有被破坏;同时由于这一过程中隔离模块3没有向仿真芯片2发送过任何命令,仿真芯片2也会继续处于复位状态。外部复位信号5为“1”电平时,仿真芯片2中的JTAG模块9和芯片功能模块10都可以工作,隔离模块3则是一个透明的数据通道,此时ARM核处理器芯片仿真器1的功能与现有的仿真器一样。
[0015] 以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。