[发明专利]用于嵌入式8051CPU的JTAG调试模块及调试方法有效
申请号: | 201310423338.3 | 申请日: | 2013-09-17 |
公开(公告)号: | CN104461796B | 公开(公告)日: | 2017-12-22 |
发明(设计)人: | 孙向向 | 申请(专利权)人: | 上海华虹集成电路有限责任公司 |
主分类号: | G06F11/22 | 分类号: | G06F11/22 |
代理公司: | 上海浦一知识产权代理有限公司31211 | 代理人: | 戴广志 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 嵌入式 8051 cpu jtag 调试 模块 方法 | ||
技术领域
本发明涉及集成电路设计与测试技术领域,特别是涉及一种用于嵌入式8051CPU的JTAG(Joint Test Action Group联合测试行为组织)调试模块。本发明还涉及一种采用所述JTAG调试模块进行调试的方法。
背景技术
8051CPU作为一款经典的CPU,被广泛的集成在SOC(片上系统)芯片上,应用在工业和消费领域的各个方面,随着近年来集成电路SOC技术的发展,软件的开发也越来越复杂,为提高软件的开发效率,嵌入式8051CPU的调试技术也得到了越来越多的研究。
调试技术的关键是在调试状态下既能观察CPU内部状态或RAM区的值而又不破坏用户程序状态。因此每次进入调试状态时,都需要先备份用户的程序状态,在退出调试状态时,恢复用户程序状态。
JTAG最初是用于测试印刷电路板,后来被广泛应用于嵌入式系统的调试接口,目前主流的调试接口都是基于JTAG的。因为8051核没有专用的调试指令,调试时需要从外部插入指令让CPU执行来获取内部状态。8051CPU是8比特的CPU,指令总线上每次取指令只能是一个字节,而8051的指令中通常包括很多双字节甚至多字节指令。目前为解决此问题,外部插入指令时通常需要在硬件逻辑上分别定义好指令类型和指令地址,通过多次通讯设置好指令类型和指令地址后,才能执行完一条完整指令,降低了效率。另外为获取RAM或8051CPU内部状态的值,通常的做法是监测8051CPU的数据总线,然后再传递到JTAG移位寄存器上,也会增加逻辑的复杂度。
发明内容
本发明要解决的技术问题是提供一种用于嵌入式8051CPU的JTAG调试模块,能够在一次JTAG通讯中使指令传入,并能减少数据总线的监控逻辑;为此,本发明还要提供一种采用所述JTAG调试模块进行调试的方法。
为解决上述技术问题,本发明的用于嵌入式8051CPU的JTAG调试模块,包括:
一JTAG接口模块,用于实现JTAG协议的;
一多路控制模块,与所述JTAG接口模块相连接,用于实现寄存器地址解析及控制;
一状态寄存器,与所述多路控制模块相连接,用于表示CPU的运行状态标志;
一断点寄存器;与所述多路控制模块相连接,用于存储外部接口传入的断点值;
其中,还包括:
指令缓存器及控制单元,与所述多路控制模块相连接,其指令缓存器用于缓存外部插入的指令,且在外部往该指令缓存器一次写入完整指令,使指令在一次JTAG通讯中传入;其控制单元产生读写缓存器的控制信号和读写地址信号;
一ACC(累加器)值的读窗口,与所述多路控制模块相连接,为从8051CPU核输入的信号线,能从8051CPU的外部直接备份用户的ACC值;在8051CPU的外部能将目标地址的值移入ACC,然后再访问ACC的读窗口,获得该值;
一PC(程序计数器)值的读窗口,与所述多路控制模块相连接,为从8051CPU核输入的信号线,能从8051CPU的外部直接备份用户的PC值。
采用上述JTAG调试模块进行调试的方法,包括如下步骤:
步骤一、当进入调试模式时,立即读取ACC和PC值,在外部进行备份;
步骤二、向指令缓存器中写入指令,使8051CPU执行插入的指令,将要读的目标地址的结果移入ACC,并读取ACC的值,使用户程序状态备份;读出8051CPU内部状态和RAM中的值;
步骤三、当要修改8051CPU内部状态值或RAM中的值时,则插入指令执行来直接修改;
步骤四、当要退出调试模式时,插入指令恢复用户程序状态,然后让8051CPU恢复运行。
采用本发明的用于嵌入式8051CPU的JTAG调试模块,由于提供了ACC值和PC值的读窗口,可以从8051CPU的外部直接备份用户的ACC值和PC值。指令缓存器能够缓存外部插入的指令,且在外部可以往指令缓存器一次写入完整指令,这样就可以使指令在一次JTAG通讯中传入。另外,在8051CPU的外部可以执行例如MOV(传送)指令将目标地址的值,移入ACC,然后再访问ACC窗口,获得该值,这样就减少了数据总线的监控逻辑。
本发明不必在硬件模块中预先定义调试指令类型,能使传送,执行外部插入的指令一次完成,减少JTAG通讯的交互次数,最大限度的减小了硬件逻辑的规模,结构简单,易于移植,在8051CPU的外部可进行灵活的处理,实现功能强大,高效的调试功能。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海华虹集成电路有限责任公司,未经上海华虹集成电路有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310423338.3/2.html,转载请声明来源钻瓜专利网。