CN114064458B - 接口可扩展的通用性的jtag调试方法及系统 - Google Patents
接口可扩展的通用性的jtag调试方法及系统Info
- Publication number
- CN114064458B CN114064458B CN202111242970.9A CN202111242970A CN114064458B CN 114064458 B CN114064458 B CN 114064458B CN 202111242970 A CN202111242970 A CN 202111242970A CN 114064458 B CN114064458 B CN 114064458B
- Authority
- CN
- China
- Prior art keywords
- jtag
- debugging
- state
- data
- interface
- 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.)
- Active
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/3644—Debugging of software by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种接口可扩展的通用性的JTAG调试方法及系统,包括:JTAG主机控制器封装成外围总线端口的IP设备;调用开发板内自带的硬件资源,将JTAG主机IP挂接到硬件系统,完成调试系统的最小硬件现场可编程门阵列设计;根据开发板特性,完成引导加载程序移植工作;在移植完成的引导加载程序内进行编译,将二进制文件固化到开发板;调试装置与上位机,调试装置与目标调试芯片,上位机运行超级终端软件,通过数据JTAG调试指令完成目标芯片调试工作。本发明能够灵活的集成到具有处理器核、RAM、ROM、GPIO引脚、JTAG_MASTER、UART器件的嵌入式系统中,完成调试系统硬件部分的搭建,具备灵活性;模块JTAGMaster控制器能够实现JTAG协议转化以及同时连接多路特性相同或者不同的JTAG设备。
Description
技术领域
本发明涉及电子设备维护技术领域,具体地,涉及一种接口可扩展的通用性的JTAG调试方法及系统。
背景技术
集成电路行业按照摩尔定律的规律发展,集成电路的规模越来越大,单颗芯片上可集成的电路越来越复杂。意味着在芯片研制阶段中更容易面临未知的失效情况、材料缺陷以及制造偏差等风险事件,从而导致流片回来的芯片不能按照预期正常工作或者性能达不到最佳等情况发生。因此基于芯片的可测性设计考虑,在1990年,发布了IEEE 1149.1标准。目前,市面的上的ARM处理器系列、PowerPC处理器系列、复杂控制器件例如PCIE PHY、SATA PHY、EMMC控制器等,内部根据各自器件的特性都集成了基于IEEE 1149.1协议的可测性硬件逻辑,提供了JTAG调试接口,从而在硬件上支持器件的在线调试功能。
各个器件配套提供的调试系统专用性强、价格昂贵,且都属于国外公司开发研制。例如,ARM处理器系列配套的JTAG调试系统是德国的SEGGER公司提供的J-Link仿真调试器以及配套软件,目前中国只设有代理商,没有国产版本;PowerPC处理器系列配套的调试系统是美国的IBM公司提供的RISCWatch仿真调试器以及配套软件。后来由德国Lauterbach公司研制的TRACE32,能够支持JTAG接口及BDM接口和所有CPU的调试工作,但是采购价格更加昂贵,一个TRACE32采购价格在上万元。以上提到的调试设备,与上位PC机连接都是通过USB端口,且需要配套的应用软件作为交互界面,应用软件安装对于上位机的操作系统有要求,对于中标麒麟类国产操作系统支持不是很好。
目前需要解决的问题是,1.调试设备采购价格过高且由国外公司提供,目前国外一些对华政策需要警惕,芯片研发相关的工具有了国产化需求;2.市面上调试器Jlink、trace32、riscwatch使用usb端口,且上位机需要运行配套应用软件,其配套应用软件对于国产操作系统支持不好;3.市面推出的调试设备,无法同时连接多个不同特性的设备进行调试工作,例如,一块芯片内部集成ARM处理器核和PCIE控制器与另一个PCIE芯片联合调试,现在的做法是,需要三个TRACE32调试器分别与ARM处理器JTAG接口和主、从PCIE PHYJTAG接口相连,TRACE32软件环境限制需要上位机有三个空闲的USB端口或者需要三台上位机分别连接,需要的硬件资源多;如果一个TRACE32来回切换连接,可能造成测试操作复杂且无法同时观测现象,不利于问题定位。因此,本发明提供了一种接口可扩展的通用性的JTAG调试系统,利用串口与上位机进行连接,交互界面使用超级终端等串口调试助手,对于上位机系统环境不做要求,用于解决调试系统国产化问题及可同时连接多个不同特性的调试设备问题,实现多器件在线调试功能。
专利文献CN113268031A(申请号:CN202110631019.6)提供了一种电子设备远程调试工具的系统及方法,涉及电子设备维护技术领域,所述系统包括JTAG服务程序,运行在Linux操作系统中的应用程序,用于与远程程序进行交互,进行客户端数据收发,提供了数据收发的功能;硬件板卡,提供FPGA资源形成嵌入式硬件环境之上,使用硬件板卡提供的FPGA资源形成嵌入式最小系统,在添加FPGA远程调试所必要的硬件模块而构成,采用在以太网完成FPGA调试的方式,并在JTAG数据处理程序中设计服务端程序,使得网络通信协议远程操作成为现实,并且通过指定的网络地址对FPGA芯片进行访问,达到多人共同访问同一块芯片和对多片FPGA芯片进行调试的目的,从而使得FPGA调试的方式使用场景更加广泛和便捷。但该发明固件的开发依靠环境不是Uboot系统,不能很好的再各类操作系统上运行,兼容性不足。
专利文献CN107290656B(申请号:CN201710452885.2)公开了一种集成双向CRC校验功能的可扩展JTAG调试结构,包括调试主控器和调试子控制器;调试主控器通过接收JTAG接口的数据,进行数据校验和指令解析后,将校验无误的数据送往相应的调试子控制器,进一步进行处理和执行,调试子控制器接受调试主控器的控制,并按照相应的数据指令,实现对调试对象的调试操作并返回调试数据;本发明的JTAG调试结构在支持IEEE1149.1标准JTAG时序的基础上,实现了双向32位CRC串行数据校验功能,能够检测数据传输过程中出现的异常,提高了数据传输过程的可靠性。但该发明没有模块JTAG Master控制器,不能够实现JTAG协议转化以及同时连接多路特性相同或者不同的JTAG设备,可扩展性不够。
英文缩写解释如下:
JTAG(Joint Test Action Group,联合测试工作组)
Uboot(Universal Boot Loader,引导加载程序)
JTAG Master(Joint Test Action Group Master,JTAG主机)
ROM(Read-Only Memory,只读存储器)
RAM(Random Access Memory,随机存取存储器)
GPIO(General-Purpose Input/Output,通用输入与输出)
AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线架构)
APB(Advanced Peripheral Bus,外围总线)
TMS(Test Mode Select,测试模式选择)
TCK(Test Clock,测试时钟)
TDI(Test Data In,测试数据输入)
TDO(Test Data Out,测试数据输出)
TRSTn(Test Reset,测试复位)
TAP(Test Access Port,测试访问接口)
Menuconfig(menu config,菜单配置)
EDA(Electronic design automat ion,电子设计自动化)
Zynq-7000(xil inx公司一款FPGA产品,官网上无英文缩写含义介绍)
DDR(Double Data Rate SDRAM,双倍速率同步动态随机存储器)
SPI Flash(Serial Peripheral interface flash,串行闪存)
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)
FPGA(Field Programmable Gate Array,现场可编程门阵列)
CMD(Command,命令)
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种接口可扩展的通用性的JTAG调试方法及系统。
根据本发明提供的一种接口可扩展的通用性的JTAG调试方法,包括:
步骤S1:JTAG主机控制器封装成外围总线端口的IP设备;
步骤S2:调用开发板内自带的硬件资源,将JTAG主机IP挂接到硬件系统,完成调试系统的最小硬件现场可编程门阵列设计;
步骤S3:根据开发板特性,完成引导加载程序移植工作;
步骤S4:在移植完成的引导加载程序内进行编译,将二进制文件固化到开发板;
步骤S5:调试装置与上位机,调试装置与目标调试芯片,上位机运行超级终端软件,通过数据JTAG调试指令完成目标芯片调试工作。
优选地,调试系统内部集成CPU核、串口、ROM、RAM及自研JTAG主机控制器、通用输入与输出引脚;
串口与上位机PC交互端口连接;ROM用于存放固化调试应用软件;RAM用于软件运行所需的存储空间;通用输入与输出引脚用于JTAG对外通信接口;JTAG主机控制器用于实现协议转换操作。
优选地,在所述步骤S1中:
所述JTAG主机控制器,根据IEEE1149.1协议将数据转化为JTAG信号输出,JTAG主机控制器接口设计选择AMBA APB接口协议,为了实现在线同时连接多个设备进行调试功能,设计JTAG接口信号,包括测试模式选择、测试时钟、测试数据输出、测试数据输入、测试复位;
根据IEEE1149.1协议的TAP状态机设计,状态转换是由TMS控制的,JTAG MASTER控制器定义了16种状态用于控制TMS信号输出,包括:ST_TLR逻辑复位状态、ST_RTI运行空闲状态、ST_SDR选择数据扫描状态、ST_CDR数据捕获状态、ST_SHD数据移位状态、ST_E1D数据退出1状态、ST_E2D数据退出2状态、ST_PDR数据传输暂停状态、ST_UDR更新数据值状态、ST_SIR选择指令扫描状态、ST_CIR指令捕获状态、ST_SHI指令移位状态、ST_E1I指令退出1状态、ST_PIR指令传输暂停状态、ST_E2I指令退出2状态、ST_UIR更新指令值状态,实现将寄存器配置指令转成JTAG协议传送给目标调式设备;
JTAG主机针对JTAG接口提供了对应功能的寄存器。
优选地,在所述步骤S3中:
与硬件配套的固件开发,基于Uboot环境开发,UBoot是嵌入式操作系统启动前的引导程序,代码开源、能够支持嵌入式处理器的多种种类。
优选地,在所述步骤S4中:
根据文件格式,增加JTAG主机的命令配置选项信息,针对JTAG接口各自定义一组调试指令,JTAG主机配置选项选择是否将调试系统固件加入UBoot编译环境中,选择成功之后,编译生成bin文件,通过电子设计自动化工具将内容固化到调试装置。
根据本发明提供的一种接口可扩展的通用性的JTAG调试系统,包括:
模块M1:JTAG主机控制器封装成外围总线端口的IP设备;
模块M2:调用开发板内自带的硬件资源,将JTAG主机IP挂接到硬件系统,完成调试系统的最小硬件现场可编程门阵列设计;
模块M3:根据开发板特性,完成引导加载程序移植工作;
模块M4:在移植完成的引导加载程序内进行编译,将二进制文件固化到开发板;
模块M5:调试装置与上位机,调试装置与目标调试芯片,上位机运行超级终端软件,通过数据JTAG调试指令完成目标芯片调试工作。
优选地,调试系统内部集成CPU核、串口、ROM、RAM及自研JTAG主机控制器、通用输入与输出引脚;
串口与上位机PC交互端口连接;ROM用于存放固化调试应用软件;RAM用于软件运行所需的存储空间;通用输入与输出引脚用于JTAG对外通信接口;JTAG主机控制器用于实现协议转换操作。
优选地,在所述模块M1中:
所述JTAG主机控制器,根据IEEE1149.1协议将数据转化为JTAG信号输出,JTAG主机控制器接口设计选择AMBA APB接口协议,为了实现在线同时连接多个设备进行调试功能,设计JTAG接口信号,包括测试模式选择、测试时钟、测试数据输出、测试数据输入、测试复位;
根据IEEE1149.1协议的TAP状态机设计,状态转换是由TMS控制的,JTAG MASTER控制器定义了16种状态用于控制TMS信号输出,包括:ST_TLR逻辑复位状态、ST_RTI运行空闲状态、ST_SDR选择数据扫描状态、ST_CDR数据捕获状态、ST_SHD数据移位状态、ST_E1D数据退出1状态、ST_E2D数据退出2状态、ST_PDR数据传输暂停状态、ST_UDR更新数据值状态、ST_SIR选择指令扫描状态、ST_CIR指令捕获状态、ST_SHI指令移位状态、ST_E1I指令退出1状态、ST_PIR指令传输暂停状态、ST_E2I指令退出2状态、ST_UIR更新指令值状态,实现将寄存器配置指令转成JTAG协议传送给目标调式设备;
JTAG主机针对JTAG接口提供了对应功能的寄存器。
优选地,在所述模块M3中:
与硬件配套的固件开发,基于Uboot环境开发,UBoot是嵌入式操作系统启动前的引导程序,代码开源、能够支持嵌入式处理器的多种种类。
优选地,在所述模块M4中:
根据文件格式,增加JTAG主机的命令配置选项信息,针对JTAG接口各自定义一组调试指令,JTAG主机配置选项选择是否将调试系统固件加入UBoot编译环境中,选择成功之后,编译生成bin文件,通过电子设计自动化工具将内容固化到调试装置。
与现有技术相比,本发明具有如下的有益效果:
1、能够灵活的集成到具有处理器核、RAM、ROM、GPIO引脚、JTAG_MASTER、UART器件的嵌入式系统中,完成调试系统硬件部分的搭建,具备灵活性;
2.而自研模块JTAG Master控制器能够实现JTAG协议转化以及同时连接多路特性相同或者不同的JTAG设备,实现多器件在线调试功能,在线调试的硬件数目可以根据需要定制硬件,具备可扩展性;
3.固件的开发依靠环境是Uboot系统,调试命令发送只需要上位机安装超级终端类的串口调试助手作为交互界面,对于上位机系统配置机器性能几乎没有过多要求,能够很好的再各类操作系统上运行,具有兼容性;
4.UBoot是嵌入式操作系统启动前的引导程序,代码开源、能够支持嵌入式处理器的种类多样(PowrPC、ARM、MIPS、x86、XScale等),代码可靠性高以及稳定性好,意味着选择UBoot作为调试系统的固件开发环境,具有较好的硬件支持基础,也意味着调试系统硬件设计应用时,可以支持选择处理器的类型覆盖PowerPC、ARM、x86等,具有一定的通用性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为调试系统通信简图;
图2为调试系统的硬件结构图;
图3为Jtag_Master控制器状态机;
图4为zynq-7000搭建调试系统;
图5为调试系统应用界面。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例1:
根据本发明提供的一种接口可扩展的通用性的JTAG调试方法,包括:
步骤S1:JTAG主机控制器封装成外围总线端口的IP设备;
步骤S2:调用开发板内自带的硬件资源,将JTAG主机IP挂接到硬件系统,完成调试系统的最小硬件现场可编程门阵列设计;
步骤S3:根据开发板特性,完成引导加载程序移植工作;
步骤S4:在移植完成的引导加载程序内进行编译,将二进制文件固化到开发板;
步骤S5:调试装置与上位机,调试装置与目标调试芯片,上位机运行超级终端软件,通过数据JTAG调试指令完成目标芯片调试工作。
具体地,调试系统内部集成CPU核、串口、ROM、RAM及自研JTAG主机控制器、通用输入与输出引脚;
串口与上位机PC交互端口连接;ROM用于存放固化调试应用软件;RAM用于软件运行所需的存储空间;通用输入与输出引脚用于JTAG对外通信接口;JTAG主机控制器用于实现协议转换操作。
具体地,在所述步骤S1中:
所述JTAG主机控制器,根据IEEE1149.1协议将数据转化为JTAG信号输出,JTAG主机控制器接口设计选择AMBA APB接口协议,为了实现在线同时连接多个设备进行调试功能,设计JTAG接口信号,包括测试模式选择、测试时钟、测试数据输出、测试数据输入、测试复位;
根据IEEE1149.1协议的TAP状态机设计,状态转换是由TMS控制的,JTAG MASTER控制器定义了16种状态用于控制TMS信号输出,包括:ST_TLR逻辑复位状态、ST_RTI运行空闲状态、ST_SDR选择数据扫描状态、ST_CDR数据捕获状态、ST_SHD数据移位状态、ST_E1D数据退出1状态、ST_E2D数据退出2状态、ST_PDR数据传输暂停状态、ST_UDR更新数据值状态、ST_SIR选择指令扫描状态、ST_CIR指令捕获状态、ST_SHI指令移位状态、ST_E1I指令退出1状态、ST_PIR指令传输暂停状态、ST_E2I指令退出2状态、ST_UIR更新指令值状态,实现将寄存器配置指令转成JTAG协议传送给目标调式设备;
JTAG主机针对JTAG接口提供了对应功能的寄存器。
具体地,在所述步骤S3中:
与硬件配套的固件开发,基于Uboot环境开发,UBoot是嵌入式操作系统启动前的引导程序,代码开源、能够支持嵌入式处理器的多种种类。
具体地,在所述步骤S4中:
根据文件格式,增加JTAG主机的命令配置选项信息,针对JTAG接口各自定义一组调试指令,JTAG主机配置选项选择是否将调试系统固件加入UBoot编译环境中,选择成功之后,编译生成bin文件,通过电子设计自动化工具将内容固化到调试装置。
实施例2:
实施例2为实施例1的优选例,以更为具体地对本发明进行说明。
本领域技术人员可以将本发明提供的一种接口可扩展的通用性的JTAG调试方法,理解为接口可扩展的通用性的JTAG调试系统的具体实施方式,即所述接口可扩展的通用性的JTAG调试系统可以通过执行所述接口可扩展的通用性的JTAG调试方法的步骤流程予以实现。
根据本发明提供的一种接口可扩展的通用性的JTAG调试系统,包括:
模块M1:JTAG主机控制器封装成外围总线端口的IP设备;
模块M2:调用开发板内自带的硬件资源,将JTAG主机IP挂接到硬件系统,完成调试系统的最小硬件现场可编程门阵列设计;
模块M3:根据开发板特性,完成引导加载程序移植工作;
模块M4:在移植完成的引导加载程序内进行编译,将二进制文件固化到开发板;
模块M5:调试装置与上位机,调试装置与目标调试芯片,上位机运行超级终端软件,通过数据JTAG调试指令完成目标芯片调试工作。
具体地,调试系统内部集成CPU核、串口、ROM、RAM及自研JTAG主机控制器、通用输入与输出引脚;
串口与上位机PC交互端口连接;ROM用于存放固化调试应用软件;RAM用于软件运行所需的存储空间;通用输入与输出引脚用于JTAG对外通信接口;JTAG主机控制器用于实现协议转换操作。
具体地,在所述模块M1中:
所述JTAG主机控制器,根据IEEE1149.1协议将数据转化为JTAG信号输出,JTAG主机控制器接口设计选择AMBA APB接口协议,为了实现在线同时连接多个设备进行调试功能,设计JTAG接口信号,包括测试模式选择、测试时钟、测试数据输出、测试数据输入、测试复位;
根据IEEE1149.1协议的TAP状态机设计,状态转换是由TMS控制的,JTAG MASTER控制器定义了16种状态用于控制TMS信号输出,包括:ST_TLR逻辑复位状态、ST_RTI运行空闲状态、ST_SDR选择数据扫描状态、ST_CDR数据捕获状态、ST_SHD数据移位状态、ST_E1D数据退出1状态、ST_E2D数据退出2状态、ST_PDR数据传输暂停状态、ST_UDR更新数据值状态、ST_SIR选择指令扫描状态、ST_CIR指令捕获状态、ST_SHI指令移位状态、ST_E1I指令退出1状态、ST_PIR指令传输暂停状态、ST_E2I指令退出2状态、ST_UIR更新指令值状态,实现将寄存器配置指令转成JTAG协议传送给目标调式设备;
JTAG主机针对JTAG接口提供了对应功能的寄存器。
具体地,在所述模块M3中:
与硬件配套的固件开发,基于Uboot环境开发,UBoot是嵌入式操作系统启动前的引导程序,代码开源、能够支持嵌入式处理器的多种种类。
具体地,在所述模块M4中:
根据文件格式,增加JTAG主机的命令配置选项信息,针对JTAG接口各自定义一组调试指令,JTAG主机配置选项选择是否将调试系统固件加入UBoot编译环境中,选择成功之后,编译生成bin文件,通过电子设计自动化工具将内容固化到调试装置。
实施例3:
实施例3为实施例1的优选例,以更为具体地对本发明进行说明。
调试系统通信说明,如图1所示,调试装置与上位PC机通过串口相连,与调试目标可通过JTAG(Joint Test Action Group,联合测试工作组)接口信号线相连,上位PC机运行串口调试软件,例如超级终端、串口调试助手等,配置合适波特率,调试装置上电启动Uboot(Universal Boot Loader,引导加载程序),进入命令输入窗口,可以根据事先定义的命令选择当前调试的目标板(JTAG端口号),最终通过JTAG Master(Joint Test Action GroupMaster,JTAG主机)控制器转换为符合目标器件特性的JTAG接口信号,完成多器件在线调试动作。
要点1:调试系统的灵活性
调试系统硬件设计考虑到造价以及灵活性,如图2所示,调试系统的最小硬件结构图,调试系统内部只需集成CPU核、串口、ROM(Read-Only Memory,只读存储器)、RAM(RandomAccess Memory,随机存取存储器)及自研JTAG Master控制器,GPIO(General-PurposeInput/Output,通用输入与输出)引脚。其中,串口支持常用的波特率115200bps、57600bps、38400bps等,与上位PC机交互端口;ROM用于存放固化调试应用软件;RAM用于软件运行所需的存储空间;GPIO引脚用于JTAG对外通信接口;JTAG Master控制器,用于实现协议转换操作。
要点2:JTAG Master控制器设计---实现JTAG协议转换及多路设备同时连接
JTAG Master控制器,属于自研设计,根据IEEE1149.1协议,将数据转化为JTAG信号输出,考虑到通用性,JTAG Master控制器接口设计选择AMBA APB(AMBA,AdvancedMicrocontroller Bus Architecture,高级微控制器总线架构)(APB,AdvancedPeripheral Bus,外围总线)接口协议,为了实现在线同时连接多个设备进行调试功能,设计四组JTAG接口(TMS、TCK、TDO、TDI、TRSTn)信号,TMS(Test Mode Select,测试模式选择)、TCK(Test Clock,测试时钟)、TDI(Test Data In,测试数据输入)、TDO(Test Data Out,测试数据输出)、TRSTn(Test Reset,测试复位)。
根据IEEE1149.1协议的TAP(Test Access Port,测试访问接口)状态机设计,状态转换是由TMS控制的,如图3所示,JTAG MASTER控制器定义了16种状态用于控制TMS信号输出,包括:ST_TLR(逻辑复位状态)、ST_RTI(运行空闲状态)、ST_SDR(选择数据扫描状态)、ST_CDR(数据捕获状态)、ST_SHD(数据移位状态)、ST_E1D(数据退出1状态)、ST_E2D(数据退出2状态)、ST_PDR(数据传输暂停状态)、ST_UDR(更新数据值状态)、ST_SIR(选择指令扫描状态)、ST_CIR(指令捕获状态)、ST_SHI(指令移位状态)、ST_E1I(指令退出1状态)、ST_PIR(指令传输暂停状态)、ST_E2I(指令退出2状态)、ST_UIR(更新指令值状态),实现将寄存器配置指令转成JTAG协议传送给目标调式设备。
JTAG Master针对四个JTAG接口,如下表所示,提供了四组寄存器,用于实现各个接口的JTAG,提供了如下寄存器列表所示,用于支持
相应的JTAG Master控制器提供了对应功能的寄存器,如下表所示。
下面介绍这些寄存器的具体定义。
(1)JTAGx_DATD_VALUE(x=0-3):数据寄存器
该寄存器的具体定义如下:
(2)JTAGx_INSTR_VALUE(x=0-3):指令寄存器
该寄存器的具体定义如下:
(3)JTAGx_CONTROL(x=0-3):控制寄存器
该寄存器的具体定义如下:
(4)JTAGx_INTR_EN(x=0-3):中断状态与使能寄存器
该寄存器的具体定义如下:
(5)JTAGx_INTR_STATUS(x=0-3):软件模式和状态寄存器
该寄存器的具体定义如下:
| 位域 | 读写属性 | 说明 |
| 31:4 | R | 保留 |
| 3 | RW | 指令传输暂停的中断状态位,写1清零 |
| 2 | RW | 指令传输完成中断状态位,写1清零 |
| 1 | RW | 数据传输暂停中断状态位,写1清零 |
| 0 | RW | 数据传输完成中断状态位,写1清零 |
(6)JTAGx_TCK_CONFIG(x=0-3):TCK控制寄存器
该寄存器的具体定义如下:
要点3:固件开发应用Uboot环境,基于Uboot命令体系设计调试指令
与硬件配套的固件开发,基于Uboot环境开发,UBoot是嵌入式操作系统启动前的引导程序,代码开源、能够支持嵌入式处理器的种类多样(PowrPC、ARM、MIPS、x86、XScale等),代码可靠性高以及稳定性好。意味着选择UBoot作为调试系统的固件开发环境,具有较好的硬件支持基础,也意味着调试系统硬件设计应用时,可以支持选择处理器的类型覆盖PowerPC、ARM、x86等,具有一定的通用性。选择UBoot作为开发环境,还因为它现有的命令体系能够基于C语言很方便的完成JTAG调试指令的开发工作。
在UBoot源码menuconfig(menu config,菜单配置)中加入Command lineinterface->JTAG Master配置可选项,根据Uboot cmd/Kconfig文件格式,增加JTAGMaster的命令配置选项信息,实现当启动menuconfig配置图形界面时,通过选中命令行接口选项,并进入下一级目录中选中JTAG Master选项(Command line interface->JTAGMaster选项),达到将JTAG命令加入Uboot编译环境的效果。这部分属于固件开发内容,针对四个JTAG接口各自定义一组调试指令,指令定义如下所示,JTAG Master配置选项选择是否将调试系统固件加入UBoot编译环境中,选择成功之后,编译生成bin文件,通过eda(Electronic des ign automation,电子设计自动化)工具将内容固化到调试装置。
表调试指令列表
实施例4:
实施例4为实施例1的优选例,以更为具体地对本发明进行说明。
利用Zynq-7000(xilinx公司一款FPGA产品,官网上无英文缩写含义介绍)搭建调试系统,如图4所示,如果不用Zynq-7000,可以使用包含处理器核资源、存储资源、可配置的GPIO引脚资源、UART资源的FPGA板作为替代,对应固件开发思路其中处理器核可以为PowerPC系列、ARM系列、x86系列、MIPS系列其中的任意一种。目前市面上常见的能作为替换的FPGA板,包括具备ARM处理器核资源的Zynq-7010\Zynq-7020\Zynq UltraScale+MPSoC系列、具备PowerPC处理器核资源的Xilinx Virtex-II Pro系列FPGA板等。
1、将上述要点2,自研设计的JTAG Master控制器利用eda工具封装成AMBA APB端口的IP设备;
2、调用Zynq-7000板内自带的硬件资源,ARM Cortex-a9 CPU核、DDR(Double DataRate SDRAM,双倍速率同步动态随机存储器)控制器及DDR存储颗粒、SPI Flash(SerialPeripheral interface flash,串行闪存)控制器及Flash颗粒、UART(UniversalAsynchronous Receiver/Transmitter,通用异步收发传输器)端口及GPIO引脚,并将JTAG_Master IP通过AMBA APB总线挂接到硬件系统,完成调试系统的最小硬件FPGA(FieldProgrammable Gate Array,现场可编程门阵列)设计;
3、根据Zynq-7000板特性,完成Uboot移植工作;
4、在移植完成的Uboot内,利用CMD(Command,命令)体系,加入上述要点3提及的JTAG调试指令,编译成功之后,将二进制文件固化到Zynq-7000板;
5、如图1所示,通过串口线连接调试装置与上位机,通过JTAG排线连接调试装置与目标调试芯片,上位机运行超级终端软件,超级终端属于计算机串行交互终端软件,能够通过串口、调制解调器或者以太网口连接,通过数据JTAG调试指令完成目标芯片调试工作,如图5所示,为调试交互界面截图。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (6)
1.一种接口可扩展的通用性的JTAG调试方法,其特征在于,包括:
步骤S1:JTAG主机控制器封装成外围总线端口的IP设备;
步骤S2:调用开发板内自带的硬件资源,将JTAG主机IP挂接到硬件系统,完成调试系统的最小硬件现场可编程门阵列设计;
步骤S3:根据开发板特性,完成引导加载程序移植工作;
步骤S4:在移植完成的引导加载程序内进行编译,将二进制文件固化到开发板;
步骤S5:调试装置与上位机通过串口相连,调试装置与目标调试芯片通过JTAG接口信号线相连,上位机运行超级终端软件,通过数据JTAG调试指令完成目标芯片调试工作;
调试系统内部集成CPU核、串口、ROM、RAM及自研JTAG主机控制器、通用输入与输出引脚;
串口与上位机PC交互端口连接;ROM用于存放固化调试应用软件;RAM用于软件运行所需的存储空间;通用输入与输出引脚用于JTAG对外通信接口;JTAG主机控制器用于实现协议转换操作;
所述步骤S4中:
根据文件格式,增加JTAG主机的命令配置选项信息,针对JTAG接口各自定义一组调试指令,JTAG主机配置选项选择是否将调试系统固件加入UBoot编译环境中,选择成功之后,编译生成bin文件,通过电子设计自动化工具将内容固化到调试装置。
2.根据权利要求1所述的接口可扩展的通用性的JTAG调试方法,其特征在于,在所述步骤S1中:
所述JTAG主机控制器,根据IEEE1149.1协议将数据转化为JTAG信号输出,JTAG主机控制器接口设计选择AMBA APB接口协议,为了实现在线同时连接多个设备进行调试功能,设计JTAG接口信号,包括测试模式选择、测试时钟、测试数据输出、测试数据输入、测试复位;
根据IEEE1149.1协议的TAP状态机设计,状态转换是由TMS控制的,JTAG MASTER控制器定义了16种状态用于控制TMS信号输出,包括:ST_TLR逻辑复位状态、ST_RTI运行空闲状态、ST_SDR选择数据扫描状态、ST_CDR数据捕获状态、ST_SHD数据移位状态、ST_E1D数据退出1状态、ST_E2D数据退出2状态、ST_PDR数据传输暂停状态、ST_UDR更新数据值状态、ST_SIR选择指令扫描状态、ST_CIR指令捕获状态、ST_SHI指令移位状态、ST_E1I指令退出1状态、ST_PIR指令传输暂停状态、ST_E2I指令退出2状态、ST_UIR更新指令值状态,实现将寄存器配置指令转成JTAG协议传送给目标调式设备;
JTAG主机针对JTAG接口提供了对应功能的寄存器。
3.根据权利要求1所述的接口可扩展的通用性的JTAG调试方法,其特征在于,在所述步骤S3中:
与硬件配套的固件开发,基于Uboot环境开发,UBoot是嵌入式操作系统启动前的引导程序,代码开源、能够支持嵌入式处理器的多种种类。
4.一种接口可扩展的通用性的JTAG调试系统,其特征在于,包括:
模块M1:JTAG主机控制器封装成外围总线端口的IP设备;
模块M2:调用开发板内自带的硬件资源,将JTAG主机IP挂接到硬件系统,完成调试系统的最小硬件现场可编程门阵列设计;
模块M3:根据开发板特性,完成引导加载程序移植工作;
模块M4:在移植完成的引导加载程序内进行编译,将二进制文件固化到开发板;
模块M5:调试装置与上位机通过串口相连,调试装置与目标调试芯片通过JTAG接口信号线相连,上位机运行超级终端软件,通过数据JTAG调试指令完成目标芯片调试工作;
调试系统内部集成CPU核、串口、ROM、RAM及自研JTAG主机控制器、通用输入与输出引脚;
串口与上位机PC交互端口连接;ROM用于存放固化调试应用软件;RAM用于软件运行所需的存储空间;通用输入与输出引脚用于JTAG对外通信接口;JTAG主机控制器用于实现协议转换操作;
所述模块M4中:
根据文件格式,增加JTAG主机的命令配置选项信息,针对JTAG接口各自定义一组调试指令,JTAG主机配置选项选择是否将调试系统固件加入UBoot编译环境中,选择成功之后,编译生成bin文件,通过电子设计自动化工具将内容固化到调试装置。
5.根据权利要求4所述的接口可扩展的通用性的JTAG调试系统,其特征在于,在所述模块M1中:
所述JTAG主机控制器,根据IEEE1149.1协议将数据转化为JTAG信号输出,JTAG主机控制器接口设计选择AMBA APB接口协议,为了实现在线同时连接多个设备进行调试功能,设计JTAG接口信号,包括测试模式选择、测试时钟、测试数据输出、测试数据输入、测试复位;
根据IEEE1149.1协议的TAP状态机设计,状态转换是由TMS控制的,JTAG MASTER控制器定义了16种状态用于控制TMS信号输出,包括:ST_TLR逻辑复位状态、ST_RTI运行空闲状态、ST_SDR选择数据扫描状态、ST_CDR数据捕获状态、ST_SHD数据移位状态、ST_E1D数据退出1状态、ST_E2D数据退出2状态、ST_PDR数据传输暂停状态、ST_UDR更新数据值状态、ST_SIR选择指令扫描状态、ST_CIR指令捕获状态、ST_SHI指令移位状态、ST_E1I指令退出1状态、ST_PIR指令传输暂停状态、ST_E2I指令退出2状态、ST_UIR更新指令值状态,实现将寄存器配置指令转成JTAG协议传送给目标调式设备;
JTAG主机针对JTAG接口提供了对应功能的寄存器。
6.根据权利要求4所述的接口可扩展的通用性的JTAG调试系统,其特征在于,在所述模块M3中:
与硬件配套的固件开发,基于Uboot环境开发,UBoot是嵌入式操作系统启动前的引导程序,代码开源、能够支持嵌入式处理器的多种种类。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111242970.9A CN114064458B (zh) | 2021-10-25 | 2021-10-25 | 接口可扩展的通用性的jtag调试方法及系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111242970.9A CN114064458B (zh) | 2021-10-25 | 2021-10-25 | 接口可扩展的通用性的jtag调试方法及系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114064458A CN114064458A (zh) | 2022-02-18 |
| CN114064458B true CN114064458B (zh) | 2025-10-03 |
Family
ID=80235435
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111242970.9A Active CN114064458B (zh) | 2021-10-25 | 2021-10-25 | 接口可扩展的通用性的jtag调试方法及系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114064458B (zh) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114706376B (zh) * | 2022-06-06 | 2022-08-26 | 南京宏泰半导体科技有限公司 | 一种基于软件解耦的硬件控制装置及方法 |
| CN119336696B (zh) * | 2023-07-21 | 2025-11-11 | 山东云海国创云计算装备产业创新中心有限公司 | 一种现场可编程逻辑器件的通信方法、系统 |
| CN117271236B (zh) * | 2023-09-08 | 2024-08-06 | 湖南长城银河科技有限公司 | 复用jtag调试通道调试cpu核的处理器及应用方法 |
| CN116955045B (zh) * | 2023-09-20 | 2023-12-22 | 江苏嘉擎信息技术有限公司 | 一种远程jtag多路复用测试方法及系统 |
| CN117370257B (zh) * | 2023-10-17 | 2024-05-14 | 广东高云半导体科技股份有限公司 | 串口转总线的装置、现场可编程门阵列及其调试方法 |
| CN117407234B (zh) * | 2023-12-14 | 2024-03-19 | 西安智多晶微电子有限公司 | 一种基于vio的fpga实时调试系统和方法 |
| CN117728899B (zh) * | 2024-02-06 | 2024-06-04 | 北京东远润兴科技有限公司 | 设备联合调试方法、装置、终端设备以及存储介质 |
| TWI884076B (zh) * | 2024-09-02 | 2025-05-11 | 新唐科技股份有限公司 | 主動式即時韌體除錯方法及受測裝置 |
| CN121070760B (zh) * | 2024-12-18 | 2026-02-24 | 北京中科腾越科技发展有限公司 | 复用irigb功能端口的调试方法及硬件结构 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103226506A (zh) * | 2013-04-28 | 2013-07-31 | 杭州士兰微电子股份有限公司 | 内嵌于芯片的usb转jtag调试装置及其调试方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5978902A (en) * | 1997-04-08 | 1999-11-02 | Advanced Micro Devices, Inc. | Debug interface including operating system access of a serial/parallel debug port |
| KR100451162B1 (ko) * | 2002-03-13 | 2004-10-02 | 엘지전자 주식회사 | 피씨를 이용한 임베디드 시스템의 원격 메모리 제어 방법 |
| CN105550119B (zh) * | 2016-01-29 | 2018-06-19 | 中国人民解放军国防科学技术大学 | 一种基于jtag协议的仿真装置 |
| CN107122304B (zh) * | 2017-05-03 | 2021-03-23 | 成都定为电子技术有限公司 | 一种jtag远程调试方法 |
| CN109726095A (zh) * | 2017-10-27 | 2019-05-07 | 深圳市中兴微电子技术有限公司 | 一种多核芯片调试的方法、系统及装置 |
| CN112997089A (zh) * | 2018-08-22 | 2021-06-18 | 康姆索利德有限责任公司 | 扩展jtag控制器和使用扩展jtag控制器进行功能调试的方法 |
-
2021
- 2021-10-25 CN CN202111242970.9A patent/CN114064458B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103226506A (zh) * | 2013-04-28 | 2013-07-31 | 杭州士兰微电子股份有限公司 | 内嵌于芯片的usb转jtag调试装置及其调试方法 |
Non-Patent Citations (1)
| Title |
|---|
| FPGA远程调试关键技术研究与实现;李欣玲;中国硕士学位论文全文数据库/信息科技辑;20180215;第2018卷(第02期);10, 12-16, 21-24, 26-28, 48-49, 51, 56 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114064458A (zh) | 2022-02-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114064458B (zh) | 接口可扩展的通用性的jtag调试方法及系统 | |
| CN113330322B (zh) | 使用片上系统测试控制器的自动化测试设备 | |
| US5884023A (en) | Method for testing an integrated circuit with user definable trace function | |
| CN107992390B (zh) | 一种基于片上总线的芯片调试方法 | |
| US20070168746A1 (en) | System and method for debugging a target computer using SMBus | |
| US10474610B1 (en) | Hardware trace and introspection for productivity platform using a system-on-chip | |
| US11250193B1 (en) | Productivity platform using system-on-chip with programmable circuitry | |
| CN101667154A (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
| US6820051B1 (en) | Software emulation monitor employed with hardware suspend mode | |
| US10430200B2 (en) | Slave processor within a system-on-chip | |
| US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
| WO2008024701A2 (en) | System and method for testing software code for use on a target processor | |
| CN117290212A (zh) | 基于risc-v架构调试系统 | |
| CN114997102B (zh) | 一种物理层验证方法、装置、设备及存储介质 | |
| EP1782204A2 (en) | Emulation and debug interfaces for testing an integrated circuit with an asynchronous microcontroller | |
| CN207946806U (zh) | 一种调试器和调试装置 | |
| CN118313325A (zh) | 一种基于qemu虚拟环境的星载计算机cmu模拟器设计方法 | |
| US20030225566A1 (en) | JTAG server | |
| CN114528034B (zh) | 加载电路、方法和系统 | |
| Nurmi et al. | A resilient system design to boot a risc-v mpsoc | |
| CN100533401C (zh) | 测试具有异步微控制器的集成电路的仿真和调试接口 | |
| CN117271236B (zh) | 复用jtag调试通道调试cpu核的处理器及应用方法 | |
| JPH10326203A (ja) | 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置 | |
| CN101124547A (zh) | 可测试的多处理器系统和用于测试处理器系统的方法 | |
| Banik et al. | System firmware debugging |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |