CN106970877A - 控制调试请求的装置及数据处理器 - Google Patents
控制调试请求的装置及数据处理器 Download PDFInfo
- Publication number
- CN106970877A CN106970877A CN201710153281.8A CN201710153281A CN106970877A CN 106970877 A CN106970877 A CN 106970877A CN 201710153281 A CN201710153281 A CN 201710153281A CN 106970877 A CN106970877 A CN 106970877A
- Authority
- CN
- China
- Prior art keywords
- debugging
- data processing
- request
- processing circuit
- exception
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3648—Debugging of software using additional hardware
- G06F11/3656—Debugging of software using additional hardware using a specific debug interface
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种控制调试请求的装置及数据处理器。所述控制调试请求的装置包括调试电路、调试异常状态寄存器、数据处理电路。其中,所述调试电路,与所述数据处理电路相连,用于实时获取所述数据处理电路的应用程序状态信息,并对所述应用程序状态信息进行处理产生调试请求,以及发送所述调试请求至所述数据处理电路;所述调试异常状态寄存器,与所述数据处理电路相连,用于读取并显示所述数据处理电路正在执行的应用程序是否具有可中断性;所述数据处理电路,用于接收所述调试电路发送的调试请求,同时获取所述调试异常状态寄存器的信息;本发明能够保证数据处理电路当前处理的应用程序状态不被破坏,且能够避免调试请求的丢失问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种控制调试请求的装置及数据处理器。
背景技术
数据处理器的调试是指数据处理器的开发人员编好程序后,获取程序在数据处理器中的运行情况,进而对数据处理器的运行进行查错和排错的过程;目前主流的调试手段有:外部调试和自主调试两种。
外部调试是指待测试数据处理器通过外部调试器与代理服务程序连接,外部调试器采用联合测试工作组(Joint Test Action Group,JTAG)协议和待调试数据处理器进行通信。例如:外部调试器可以在数据处理器设置多个内存硬断点,当数据处理器执行代理服务程序,并触发内存硬断点时,数据处理器进入外部调试模式,此时,数据处理器不进行任何操作,外部调试器执行调试程序的操作;但是,在使用外部调试对应用程序进行调试时,由于应用程序的进程切换在使用断点方式调试时会存在误断、难断等问题,造成应用程序难调试和跟踪。
为了方便对应用程序进行调试,可以采用自主调试的手段,自主调试是指待调试数据处理器直接和主机连接,其中,主机用于向数据处理器下载待调试的内核程序或者应用程序,自主调试装置在应用程序中嵌入调试配置程序,设置内存硬断点。数据处理器在执行应用程序的过程中,触发内存硬断点,自主调试装置产生调试异常请求至数据处理器,数据处理器响应该调试异常请求,并执行调试异常服务程序。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
由于自主调试是通过自主调试装置向数据处理器发送调试异常请求的方式执行调试操作,因此在数据处理器执行程序的关键代码(例如,现场的保存和恢复)时也可能接收到调试异常请求。如果数据处理器立即响应调试异常,那么可能导致数据处理器的状态被破坏,导致程序无法正常运行。如果数据处理器不响应该调试异常,那么该调试异常会被丢掉,从而导致数据处理器在某一个断点无法得到调试。
发明内容
本发明提供的控制调试请求的装置及数据处理器,能够在保证数据处理器当前处理应用程序状态不被破坏的前提下,避免调试请求的丢失问题。
第一方面,本发明提供一种控制调试请求的装置,包括:
调试电路、调试异常状态寄存器、数据处理电路,其中,
所述调试电路,与所述数据处理电路相连,用于实时获取所述数据处理电路的应用程序状态信息,并对所述应用程序状态信息进行处理产生调试请求,以及发送所述调试请求至所述数据处理电路,所述调试请求用于指示所述数据处理电路执行调试异常服务程序;
所述调试异常状态寄存器,与所述数据处理电路相连,用于读取并显示所述数据处理电路正在执行的应用程序是否具有可中断性;所述调试异常状态寄存器包括调试异常使能位和调试异常挂起位,其中,所述调试异常使能位为高代表所述数据处理电路执行的应用程序具有可中断性,所述调试异常使能位为低代表所述数据处理电路执行的应用程序不具有可中断性,所述调试异常挂起位为高表示存在调试异常请求等待被处理,调试异常挂起位为低表示不存在调试异常请求等待被处理;
所述数据处理电路,用于接收所述调试电路发送的调试请求,同时获取所述调试异常状态寄存器的信息,当所述调试异常状态寄存器的所述调试异常使能位为高时,响应所述调试异常请求,并执行所述调试异常服务程序;当所述调试异常状态寄存器的所述调试异常使能位为低时,置高所述调试异常挂起位,继续完成当前操作。
可选地,所述应用程序状态信息为所述数据处理电路发送的指令执行信息或内存访问地址信息。
可选地,所述调试请求为所述调试电路在内部调试模式下产生的调试异常请求。
可选地,所述调试异常请求为,所述调试电路接收所述数据处理电路发送的指令执行信息,并对所述指令执行信息进行处理后产生的指令触发型调试异常请求。
可选地,所述调试异常请求为,所述调试电路接收所述数据处理电路发送的内存访问地址信息,并对所述内存访问地址信息进行处理后产生的内存触发型调试异常请求。
可选地,所述数据处理电路还用于,在响应所述调试异常请求后,置低所述调试异常使能位,置高所述调试异常挂起位。
可选地,所述数据处理电路还用于,
在完成执行所述调试异常服务程序,并退出所述调试异常服务程序后,置高所述调试异常使能位。
可选地,当所述数据处理电路同时接收到调试异常请求和中断请求时,所述数据处理电路优先处理调试异常请求。
第二方面,本发明提供一种数据处理器,所述数据处理器包括上述控制调试请求的装置。
本发明实施例提供的控制调试请求的装置及数据处理器,通过使用调试异常状态寄存器实时监测数据处理电路状态并根据所述数据处理电路的状态对调试请求进行处理,能够保证数据处理电路当前处理的应用程序状态不被破坏,且能够避免调试请求的丢失。
附图说明
图1为本发明一实施例控制调试请求的装置的结构示意图;
图2为本发明调试电路的一种结构示意图;
图3为本发明调试电路的另一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种控制调试请求的装置,如图1所示,所述装置包括:
调试电路11,与所述数据处理电路13相连,用于实时获取所述数据处理电路13的应用程序状态信息,并对所述应用程序状态信息进行处理产生调试请求,以及发送所述调试请求至所述数据处理电路13,所述调试请求用于指示所述数据处理电路13执行调试异常服务程序;
所述调试异常状态寄存器12,与所述数据处理电路13相连,用于读取并显示所述数据处理电路13正在执行的应用程序是否具有可中断性;所述调试异常状态寄存器12包括调试异常使能位和调试异常挂起位,其中,所述调试异常使能位为高代表所述数据处理电路执行的应用程序具有可中断性,所述调试异常使能位为低代表所述数据处理电路执行的应用程序不具有可中断性,所述调试异常挂起位为高表示存在调试异常请求等待被处理,调试异常挂起位为低表示不存在调试异常请求等待被处理;
所述数据处理电路13,用于接收所述调试电路11发送的调试请求,同时获取所述调试异常状态寄存器12的信息,当所述调试异常状态寄存器12的所述调试异常使能位为高时,响应所述调试异常请求,并执行所述调试异常服务程序;当所述调试异常状态寄存器12的所述调试异常使能位为低时,置高所述调试异常挂起位,继续完成当前操作。
本发明实施例提供的控制调试请求的装置,通过使用调试异常状态寄存器实时监测数据处理电路状态并根据所述数据处理电路的状态对调试请求进行处理,能够保证数据处理电路当前处理的应用程序状态不被破坏,且能够避免调试请求的丢失问题。
可选地,所述应用程序状态信息为所述数据处理电路13发送的指令执行信息或内存访问地址信息。
可选地,所述调试请求为所述调试电路11在内部调试模式下产生的调试异常请求。
可选地,所述调试异常请求为,所述调试电路11接收所述数据处理电路13发送的指令执行信息,并对所述指令执行信息进行处理后产生的指令触发型调试异常请求。
可选地,所述调试异常请求为,所述调试电路11接收所述数据处理电路13发送的内存访问地址信息,并对所述内存访问地址信息进行处理后产生的内存触发型调试异常请求。
具体地,所述调试电路11接收所述内存访问地址信息后,将所述内存访问地址信息与预设内存硬断点地址信息进行对比,当存在内存访问地址信息与内存硬断点地址信息匹配成功时,根据匹配成功的内存硬断点的模式配置位确定调试请求为第一调试请求或第二调试请求,并发送所述第一调试求或第二调试请求至所述数据处理电路13。
可选地,如图2所示,为所述调试电路11的一种结构示意图,其中,所述调试电路11提供n个内存硬断点,且每个内存硬断点包含一个内存硬断点控制寄存器61、一个内存硬断点计数寄存器62、一个内存硬断点基地址寄存器63和一个内存硬断点掩码寄存器64。其中,内存硬断点控制寄存器61提供使能位和条件位供用户配置,所述使能位可配置为指令硬断点使能位也可以配置为数据硬断点使能位,所述条件位可配置位指令硬断点条件位也可配置为数据硬断点条件位。
同时,这n个内存硬断点受一个模式配置位60控制,所述模式配置位60包括外部调试模式或调试异常模式,断点匹配模块62实时监测数据处理电路40发送的应用程序状态信息,当应用程序状态信息与某个内存硬断点信息匹配时,再根据所述模式配置位60决定是否产生调试异常请求。
当所述模式配置位60的调试模式为外部调试模式时,所述调试电路11不会产生调试异常请求,而是请求所述数据处理电路13进入外部调试模式,由外部调试器获得所述数据处理电路13的控制权完成调试操作;
当所述模式配置位60的调试模式为调试异常模式时,所述调试电路11产生调试异常请求,请求数据处理电路13执行调试异常服务程序完成调试操作。
可选地,如图3所示,为所述调试电路的另一种结构示意图,其中,所述调试电路11提供多组模式配置位70,每组模式配置位70为每个内存硬断点提供独立的调试模式;当所述调试模式为外部调试模式时,所述调试电路11请求所述数据处理电路13进入外部调试模式,外部调试器获得所述数据处理电路13的控制权完成调试操作;当所述调试模式为调试异常模式时,所述调试电路11产生调试异常请求,请求数据处理电路13执行调试异常服务程序完成调试操作。
可选地,所述数据处理电路13还用于,在完成执行所述调试异常服务程序,并退出所述调试异常服务程序后,置高所述调试异常挂起位。
可选地,当所述数据处理电路13同时接收到调试异常请求和中断请求时,所述数据处理电路13优先处理调试异常请求。
本发明实施例还提供一种数据处理器,所述数据处理器包括上述控制调试请求的装置。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1.一种控制调试请求的装置,其特征在于,所述控制调试请求的装置包括调试电路、调试异常状态寄存器、数据处理电路,其中,
所述调试电路,与所述数据处理电路相连,用于实时获取所述数据处理电路的应用程序状态信息,并对所述应用程序状态信息进行处理产生调试请求,以及发送所述调试请求至所述数据处理电路,所述调试请求用于指示所述数据处理电路执行调试异常服务程序;
所述调试异常状态寄存器,与所述数据处理电路相连,用于读取并显示所述数据处理电路正在执行的应用程序是否具有可中断性;所述调试异常状态寄存器包括调试异常使能位和调试异常挂起位,其中,所述调试异常使能位为高代表所述数据处理电路执行的应用程序具有可中断性,所述调试异常使能位为低代表所述数据处理电路执行的应用程序不具有可中断性,所述调试异常挂起位为高表示存在调试异常请求等待被处理,调试异常挂起位为低表示不存在调试异常请求等待被处理;
所述数据处理电路,用于接收所述调试电路发送的调试请求,同时获取所述调试异常状态寄存器的信息,当所述调试异常状态寄存器的所述调试异常使能位为高时,响应所述调试异常请求,并执行所述调试异常服务程序;当所述调试异常状态寄存器的所述调试异常使能位为低时,置高所述调试异常挂起位,继续完成当前操作。
2.根据权利要求1所述的装置,其特征在于,所述应用程序状态信息为所述数据处理电路发送的指令执行信息或内存访问地址信息。
3.根据权利要求2所述的装置,其特征在于,所述调试请求为所述调试电路在内部调试模式下产生的调试异常请求。
4.根据权利要求3所述的装置,其特征在于,所述调试异常请求为,所述调试电路接收所述数据处理电路发送的指令执行信息,并对所述指令执行信息进行处理后产生的指令触发型调试异常请求。
5.根据权利要求3所述的装置,其特征在于,所述调试异常请求为,所述调试电路接收所述数据处理电路发送的内存访问地址信息,并对所述内存访问地址信息进行处理后产生的内存触发型调试异常请求。
6.根据权利要求1所述的装置,其特征在于,所述数据处理电路还用于,在响应所述调试异常请求后,置低所述调试异常使能位。
7.根据权利要求1所述的装置,其特征在于,所述数据处理电路还用于,在完成执行所述调试异常服务程序,并退出所述调试异常服务程序后,置高所述调试异常使能位。
8.根据权利要求1所述的装置,其特征在于,当所述数据处理电路同时接收到调试异常请求和中断请求时,所述数据处理电路优先处理调试异常请求。
9.一种数据处理器,其特征在于,所述数据处理器包括如权利要求1至8中任一项所述的控制调试请求的装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710153281.8A CN106970877A (zh) | 2017-03-15 | 2017-03-15 | 控制调试请求的装置及数据处理器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710153281.8A CN106970877A (zh) | 2017-03-15 | 2017-03-15 | 控制调试请求的装置及数据处理器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN106970877A true CN106970877A (zh) | 2017-07-21 |
Family
ID=59329406
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201710153281.8A Pending CN106970877A (zh) | 2017-03-15 | 2017-03-15 | 控制调试请求的装置及数据处理器 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN106970877A (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111737103A (zh) * | 2019-03-25 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 一种包括调试单元的处理器和调试系统 |
| CN114356636A (zh) * | 2021-12-30 | 2022-04-15 | 天津国芯科技有限公司 | 一种防止cpu调试失控的方法及电路 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1133455A (zh) * | 1994-12-28 | 1996-10-16 | 株式会社东芝 | 微处理器与调试系统 |
| CN102346708A (zh) * | 2010-08-03 | 2012-02-08 | 中兴通讯股份有限公司 | 一种调试器及其调试方法 |
| CN103339614A (zh) * | 2011-01-28 | 2013-10-02 | Arm有限公司 | 控制调试异常的产生 |
-
2017
- 2017-03-15 CN CN201710153281.8A patent/CN106970877A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1133455A (zh) * | 1994-12-28 | 1996-10-16 | 株式会社东芝 | 微处理器与调试系统 |
| CN102346708A (zh) * | 2010-08-03 | 2012-02-08 | 中兴通讯股份有限公司 | 一种调试器及其调试方法 |
| WO2012016438A1 (zh) * | 2010-08-03 | 2012-02-09 | 中兴通讯股份有限公司 | 一种调试器及其调试方法 |
| CN103339614A (zh) * | 2011-01-28 | 2013-10-02 | Arm有限公司 | 控制调试异常的产生 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111737103A (zh) * | 2019-03-25 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 一种包括调试单元的处理器和调试系统 |
| CN114356636A (zh) * | 2021-12-30 | 2022-04-15 | 天津国芯科技有限公司 | 一种防止cpu调试失控的方法及电路 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1089184B1 (en) | Microcomputer debug architecture and method | |
| CN102346708B (zh) | 一种调试器及其调试方法 | |
| TWI229796B (en) | Method and system to implement a system event log for system manageability | |
| US5630049A (en) | Method and apparatus for testing software on a computer network | |
| US6487683B1 (en) | Microcomputer debug architecture and method | |
| US6463553B1 (en) | Microcomputer debug architecture and method | |
| US9852038B2 (en) | Debugging system and debugging method of multi-core processor | |
| EP1089181B1 (en) | Microcomputer debug architecture and method | |
| CN108280027A (zh) | 一种脚本的并发调试渲染方法及装置 | |
| CN109167681A (zh) | 状态监控方法及装置 | |
| CN108021791B (zh) | 数据保护方法及装置 | |
| CN104077220A (zh) | Mips架构操作系统内核的调试方法和装置 | |
| CN102063366A (zh) | 调试进程的方法和系统 | |
| CN106970877A (zh) | 控制调试请求的装置及数据处理器 | |
| US20170123960A1 (en) | System, method and apparatus for debugging of reactive applications | |
| CN113742113B (zh) | 一种嵌入式系统健康管理方法、设备及储存介质 | |
| CN105260257B (zh) | 解决程序运行期间停止响应的方法和装置 | |
| CN100369009C (zh) | 使用系统管理中断信号的监控系统及方法 | |
| CN111381995A (zh) | 用于还原用户操作的方法及装置、计算机 | |
| CN112743260A (zh) | 机器人焊接控制方法、机器人焊接控制设备及存储介质 | |
| CN116954635A (zh) | 闪存芯片的烧录方法和系统、存储介质及电子设备 | |
| JPH0581070A (ja) | プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法 | |
| CN107608833A (zh) | 基于开关机测试治具的远程控制方法及装置 | |
| CN110941537A (zh) | 一种基于行为状态的进程检测方法及检测装置 | |
| CN108228247A (zh) | 一种工具与目标机增强交互的系统和方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170721 |
|
| RJ01 | Rejection of invention patent application after publication |