CN115509834A - 一种基于jtag协议的微处理器在线调试系统及调试方法 - Google Patents

一种基于jtag协议的微处理器在线调试系统及调试方法 Download PDF

Info

Publication number
CN115509834A
CN115509834A CN202211144455.1A CN202211144455A CN115509834A CN 115509834 A CN115509834 A CN 115509834A CN 202211144455 A CN202211144455 A CN 202211144455A CN 115509834 A CN115509834 A CN 115509834A
Authority
CN
China
Prior art keywords
bus
microprocessor
register
controller module
module
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
Application number
CN202211144455.1A
Other languages
English (en)
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.)
Beijing Microelectronic Technology Institute
Mxtronics Corp
Original Assignee
Beijing Microelectronic Technology Institute
Mxtronics Corp
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 Beijing Microelectronic Technology Institute, Mxtronics Corp filed Critical Beijing Microelectronic Technology Institute
Priority to CN202211144455.1A priority Critical patent/CN115509834A/zh
Publication of CN115509834A publication Critical patent/CN115509834A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Microcomputers (AREA)

Abstract

本发明公开了一种基于JTAG协议的微处理器在线调试系统及调试方法,该系统包括TAP控制器模块、DMA控制器模块、BUS访问模块。TAP控制器模块功能在于提供一个标准的JTAG测试访问接口实现微处理器与外部调试器之间JTAG通信;DMA控制器模块功能在于根据外部调试器发起的调试命令对微处理器发起总线读写命令;BUS访问模块功能在于作为微处理器内部片内总线的Master,根据DMA控制器模块的读写命令对片内总线进行访问并对各总线上的读写信息进行记录。本发明具有传输速率快、时序性好、结构简单等优点,可实现对微处理器的多种调试功能;可实现对AXI总线、AHB总线和APB总线组成的三级片内总线架构微处理器的监听。

Description

一种基于JTAG协议的微处理器在线调试系统及调试方法
技术领域
本发明属于集成电路设计与应用技术领域,涉及到一种基于JTAG协议的微处理器在线调试系统及调试方法。
背景技术
随着芯片制程及微处理器内核架构的快速发展,微处理器的主频提升明显,在微处理器的研发过程中,对其在线调试模块的性能及功能要求也随之水涨船高。
微处理器的在线调试方式可分为异步通信和同步通信两种,其中异步通信以串口通信方式最为普遍。串口通信在工作时以异步方式收发数据,该方式没有时钟信号将发送端的位输出与接收端的位采样进行同步,在通信时要求接收端和发送端的波特率误差必须在10%以内,这一现象在异步通信方式上是非常普遍的。
微处理器调试模块异步通信电路的实际工作效果几乎完全取决于PCB设计人员和PCB加工人员的知识积累和工作经验,此外接口线规格不统一也是普遍现象。总的来说,用异步通信来实现对处理器的调试具有传输速率慢、抗干扰能力差、硬件实现不统一等缺点。随着微处理器研发技术的发展,目前异步调试已渐渐被淘汰。
目前用于微处理器的在线调试的同步通信方式主要有JTAG、Ethernet和USB三种,其中Ethernet和USB两种方式调试速率虽比JTAG要快,但它们的功耗开销和面积开销所带来的影响远大于调试速率的提升,此外这两种方式在应用时都需要应用复杂的模拟电路,这些都无疑提高了微处理器的设计难度和风险。
JTAG协议是目前主流芯片厂商所采用的同步调试协议,大多数比较复杂的器件都支持JTAG协议,比如ARM、DSP、FPGA等器件。JTAG工作时钟由外部调试器通过JTAG接口直接提供,JTAG接口在实际应用时与调试盒对应管脚直连即可,无需配套外围电路。用JTAG通信协议来实现对微处理器的在线调试具有传输速率快、时序性好、结构简单等优点。
随着微处理器内核架构技术的发展,片内总线的结构愈发复杂,由AXI总线、AHB总线和APB总线组成的三级片内总线架构在微处理器上的应用也越来越普遍。传统的微处理在线调试模块往往只挂载在一级片内总线上,其中以距离CPU最近的第一级总线最为常见。对微处理器的总线架构来说,其低一级总线无法直接访问高一级总线,高级总线访问低级总线时又会受到总线拥塞的阻碍。此外,在线调试模块如果只挂载在一个总线上,那它只能监听其同级和次级的总线信号,并不能监听其上级总线。这些影响在AHB-APB两级总线架构下并不明显,而对于三级片内总线架构的微处理来说,其在线调试模块的总线接口设计则必须被设计人员慎重考虑。
综上所述,设计一种基于JTAG通信协议的微处理器在线调试方法,实现对多级片内总线的直接访问及监听,对于微处理的发展具有重要意义。
发明内容
本发明的技术解决问题是:针对微处理器在线调试模块的高性能及多功能的需求,提出一种基于JTAG协议的微处理器在线调试系统及调试方法,以满足微处理器当前的发展趋势。
本发明的技术解决方案是:
一种基于JTAG协议的微处理器在线调试系统,包括TAP控制器模块、DMA控制器模块和BUS访问模块;
TAP控制器模块:外部调试器根据调试需求通过JTAG测试访问接口向TAP控制器模块的寄存器配置要访问的总线接口以及读写地址和读写数据,TAP控制器模块将相应寄存器的值发送给DMA控制器模块;外部调试器通过JTAG测试访问接口能够读取各寄存器的信息;
DMA控制器模块:对TAP控制器模块发送的寄存器的值进行解析,向BUS访问模块发出访问请求并将解析结果发送给BUS访问模块;
BUS访问模块:作为微处理器内部片内总线的Master,根据DMA控制器模块发起的访问请求以及解析结果、外部调试器要访问的总线接口,对片内总线进行读写操作,将各总线的读写信息写入TAP控制器模块的相应寄存器中。
优选的,TAP控制器模块内部设计有ID、BYPASS、ADDR、VALUE、MBIST、INFO六个寄存器;
其中,ID寄存器用于存储微处理器的版本信息;BYPASS寄存器用于存储微处理器的级联情况;ADDR寄存器用于配置对微处理器的读写地址、读写命令和读写类型;VALUE寄存器用于存储微处理器的读写数据;MBIST寄存器用于实现微处理器内部存储器的内建自测试;ID、BYPASS、MBIST的内容由TAP控制器模块产生;INFO寄存器用于存储要访问的总线接口信息,由外部调试器配置。
优选的,外部调试器对ADDR和VALUE两个寄存器进行配置,配置完成后TAP控制器模块将ADDR和VALUE两个寄存器的值发送给DMA控制器模块。
优选的,BUS访问模块设计有AXI、AHB和APB接口,AXI与微处理器的片内总线AXIBus匹配,AHB与微处理器的片内总线AHB Bus匹配,APB与微处理器的片内总线APB Bus匹配。
优选的,BUS访问模块在工作时会对微处理器内部片内总线进行监听,实现总线跟踪。
一种基于JTAG协议的微处理器在线调试方法,包括:
外部调试器对在线调试模块进行初始化;
外部调试器向在线调试模块写入要访问的微处理器总线接口、读写地址和数据;
外部调试器通过在线调试模块对微处理器进行在线调试,过程如下:
S1,外部调试器通过JTAG协议向TAP控制器模块发出读写命令,对TAP控制器的寄存器进行读写;
S2,TAP控制器模块对寄存器进行解析,如果读写的寄存器为ADDR、VALUE寄存器,则将ADDR、VALUE寄存器的值传递给DMA控制器模块;
S3,DMA控制器模块对ADDR和VALUE寄存器的值进行解析,向BUS访问模块发出访问请求并将解析结果发送给BUS访问模块;
S4,BUS访问模块根据DMA控制器模块发起的访问请求、ADDR和VALUE寄存器解析结果、TAP控制器模块内部INFO寄存器的配置值,对微处理器对应片内总线的总线读写;
S5,外部调试器通过JTAG协议读取TAP控制器模块中ADDR和VALUE寄存器的值,实现对读写结果的查询。
优选的,初始化步骤如下:
步骤1,外部调试器读取TAP控制器模块内部ID寄存器的初始值,该步骤的作用为确认TAP控制器模块中指令寄存器的长度;
步骤2,外部调试器读取TAP控制器模块内部BYPASS寄存器的值,确认微处理器的级联情况;
步骤3,外部调试器读取TAP控制器模块内部ID寄存器的值,确认微处理器的Identification code,以及TAP控制器模块中所有寄存器对应的编码;
步骤4,外部调试器对TAP控制器模块内部INFO寄存器进行初始化,配置在线调试模块中BUS访问模块的总线访问接口,BUS访问模块的总线访问接口为微处理器的AXI Bus、AHB Bus或APB Bus总线接口。
优选的,外部调试器向在线调试模块写入要访问的微处理器总线接口、读写地址和数据,步骤如下:
步骤1,外部调试器判断INFO寄存器是否需要更改,如需要更改,则进行INFO寄存器的配置,如不需要更改则直接跳过该步骤;
步骤2,外部调试器根据JTAG协议时序在Shirt-IR阶段将ADDR寄存器对应的IR编码通过TDI端口打入TAP控制器模块,选中ADDR寄存器;
步骤3,外部调试器根据JTAG协议时序在Shirt-DR阶段将ADDR寄存器对应的目标值通过TDI端口打入TAP控制器模块,配置ADDR寄存器;
步骤4,外部调试器根据JTAG协议时序在Shirt-IR阶段将VALUE寄存器对应的IR编码通过TDI端口打入TAP控制器模块,选中VALUE寄存器;
步骤5,外部调试器根据JTAG协议时序在Shirt-DR阶段对VALUE寄存器进行读写,如为写访问则将对应的目标值通过TDI端口打入TAP控制器模块,如为读访问则在该阶段对TDO的输出进行读取;
步骤6,外部调试器决定是否进行连续传输,如为连续传输则返回步骤2,如传输结束,则直接返回空闲态。
优选的,外部调试器通过对微处理器片内总线进行读写,能够实现以下功能:
修改微处理器内部存储器对应的程序指令,实现断点挂起功能;
查看和修改微处理器内核寄存器和存储器。
优选的,MBIST寄存器生成测试命令并读取测试数据,实现微处理器内部存储器的内建自测试。
本发明相对于现有技术具有以下有益效果:
(1)本发明提供了一种基于JTAG协议的微处理器在线调试方法,该实现方式具有传输速率快、时序性好、结构简单等优点;
(2)本发明可实现对微处理器的多种调试功能;
(3)本发明通过TAP控制器模块的ADDR和VALUE可对指定片内总线发起读写访问,可实现对AXI总线、AHB总线和APB总线组成的三级片内总线架构微处理器的直接访问及监听。
附图说明
图1是本发明系统结构框图;
图2是本发明调试初始化过程框图;
图3是本发明外部调试器通过JTAG协议访问微处理器的指令流程框图;
图4是本发明在线调试方法对应的工作原理。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明公开的实施方式作进一步详细描述。
一种基于JTAG协议的微处理器在线调试系统,包括:TAP控制器模块、DMA控制器模块、BUS访问模块。
TAP控制器模块功能在于提供一个标准的JTAG测试访问接口实现微处理器与外部调试器之间JTAG通信,其内部具有ID、BYPASS、ADDR、VALUE、MBIST、INFO六个指令/数据寄存器。DMA控制器模块功能在于根据外部调试器发起的调试命令对微处理器发起总线读写命令。BUS访问模块功能在于作为微处理器内部片内总线的Master,根据DMA控制器模块的读写命令对片内总线进行读写访问,并对各总线上的读写信息进行记录;
本发明可实现对微处理器的在线调试,其具备的功能包含有断点挂起、单步执行、总线追踪、实现对微处理器内部存储器的内建自测试、查看和修改微处理器内核寄存器、查看和修改微处理器内部存储器。
所述的ID、BYPASS、ADDR、VALUE、MBIST、INFO六个寄存器为TAP控制器模块中定义的JTAG指令/数据寄存器,外部调试器可通过JTAG协议规定的读写时序,在Shift-DR和Shift-IR状态对它们进行访问;ID寄存器用于标识微处理器的版本信息;BYPASS寄存器用于标识微处理器的级联情况;ADDR寄存器用于标识对微处理器的读写地址、读写命令和读写类型;VALUE寄存器用于标识微处理器的读写数据;MBIST寄存器用于实现微处理器内部存储器的内建自测试;INFO寄存器用于标识微处理器的片内总线信息;ID、BYPASS、MBIST、INFO的具体实现由TAP控制器模块产生;TAP控制器模块只负责ADDR、VALUE两个寄存器与外部调试器的读写过程,这两个寄存器的具体实现由DMA控制器模块产生。
DMA控制器模块用于发起对微处理器内部的总线访问;该功能模块负责ADDR、VALUE两个寄存器的具体设计实现,当TAP控制器模块完成外部调试器对ADDR和VALUE两个寄存器的配置后,会将它们的值传递给DMA控制器模块,DMA控制器模块对ADDR和VALUE进行解析,向BUS访问模块发出对微处理器的总线访问请求。
MBIST寄存器分为四个字段:启动、地址、状态、测试结果。其中启动字段用于启动对地址字段指定的内部存储器的MBIST测试(该字段只写);地址字段包含内部存储器的编号,可用于选定目标存储器(该字段可读可写);状态字段用于表示目标存储器的MBIST状态(该字段为只读,返回信息包含有测试进行中、测试完成、未进行测试和地址无效四个状态);测试结果用于在测试完成后,检查MBIST的结果(该字段为只读,返回信息为测试正常和测试异常两个结果)。
微处理器内部片内总线包括AXI总线、AHB总线和APB总线;BUS访问模块根据DMA控制器模块发起的访问请求和TAP控制器模块内部INFO寄存器的配置值,通过外部调试器指定的总线接口和读写长度发起对微处理器对应片内总线的总线读写;所述读写信息记录是指BUS访问模块在工作时会对微处理器内部片内总线进行监听,并通过其内部的循环缓存区对各个总线最近的读写信息进行记录。
在线调试是指微处理器在运行过程中,外部调试器通过微处理的在线调试模块对微处理器进行调试。断点挂起功能由修改微处理器内部存储器对应的程序指令实现;单步执行指令通过配置微处理器内部单步执行逻辑实现;总线追踪功能通过监听片内总线的读写命令实现;对微处理器内部存储器的内建自测试功能由MBIST寄存器下达测试命令及其读数值完成;查看和修改微处理器内核寄存器以及查看和修改微处理器内部存储器功能均由对微处理器片内总线的读写访问实现。
外部调试器对微处理器内部地址访问分为如下步骤:1)选中ADDR寄存器对应的指令寄存器;2)配置ADDR寄存器对应的数据寄存器;3)选中VALUE寄存器对应的指令寄存器;4)配置或者读取VALUE寄存器对应的数据寄存器。
一种基于JTAG协议的微处理器在线调试方法,其特征在于包括:
外部调试器对在线调试模块进行初始化;
步骤1,外部调试器读取TAP控制器模块内部ID寄存器的初始值,该步骤的作用为确认TAP控制器模块中指令寄存器的长度;
步骤2,外部调试器读取TAP控制器模块内部BYPASS寄存器的值,确认微处理器的级联情况;
步骤3,外部调试器读取TAP控制器模块内部ID寄存器的值,确认微处理器的Identification code,以及TAP控制器模块中所有寄存器对应的编码;
步骤4,外部调试器对TAP控制器模块内部INFO寄存器进行初始化,配置在线调试模块中BUS访问模块的总线访问接口,BUS访问模块的总线访问接口为微处理器的AXI Bus、AHB Bus或APB Bus总线接口。
外部调试器向在线调试模块写入要访问的微处理器总线接口、读写地址和数据;
步骤1,外部调试器判断INFO寄存器是否需要更改,如需要更改,则进行INFO寄存器的配置,如不需要更改则直接跳过该步骤;
步骤2,外部调试器根据JTAG协议时序在Shirt-IR阶段将ADDR寄存器对应的IR编码通过TDI端口打入TAP控制器模块,选中ADDR寄存器;
步骤3,外部调试器根据JTAG协议时序在Shirt-DR阶段将ADDR寄存器对应的目标值通过TDI端口打入TAP控制器模块,配置ADDR寄存器;
步骤4,外部调试器根据JTAG协议时序在Shirt-IR阶段将VALUE寄存器对应的IR编码通过TDI端口打入TAP控制器模块,选中VALUE寄存器;
步骤5,外部调试器根据JTAG协议时序在Shirt-DR阶段对VALUE寄存器进行读写,如为写访问则将对应的目标值通过TDI端口打入TAP控制器模块,如为读访问则在该阶段对TDO的输出进行读取;
步骤6,外部调试器决定是否进行连续传输,如为连续传输则返回步骤2,如传输结束,则直接返回空闲态。
外部调试器通过在线调试模块对微处理器进行在线调试,过程如下:
S1,外部调试器通过JTAG协议向TAP控制器模块发出读写命令,对TAP控制器的寄存器进行读写;
S2,TAP控制器模块对寄存器进行解析,如果读写的寄存器为ADDR、VALUE寄存器,则将ADDR、VALUE寄存器的值传递给DMA控制器模块;
S3,DMA控制器模块对ADDR和VALUE寄存器的值进行解析,向BUS访问模块发出访问请求并将解析结果发送给BUS访问模块;
S4,BUS访问模块根据DMA控制器模块发起的访问请求、ADDR和VALUE寄存器解析结果、TAP控制器模块内部INFO寄存器的配置值,对微处理器对应片内总线的总线读写;
S5,外部调试器通过JTAG协议读取TAP控制器模块中ADDR和VALUE寄存器的值,实现对读写结果的查询。
实施例:
参照图1,示出了本发明实施例中一种基于JTAG协议的微处理器在线调试模块的实现方法的系统结构框图。在本实施例中,图中包含的要素:外部调试器、TAP控制器模块、DMA控制器模块、BUS访问模块、AXI Bus、AHB Bus和APB Bus。
图中外部调试器为微处理器对应的JTAG调试器,该调试器按照JTAG协议规定的时序通过TCK、TDI和TMS三个输入信号向在线调试模块发出读写命令,并根据输出信号TDO的值读取返回值。
图中TAP控制器模块功能在于提供一个标准的JTAG测试访问接口实现微处理器与外部调试器之间JTAG通信,其内部具有ID、BYPASS、ADDR、VALUE、MBIST、INFO六个指令/数据寄存器。
图中DMA控制器模块功能在于根据外部调试器发起的调试命令对微处理器发起总线读写命令。
图中BUS访问模块功能在于作为微处理器内部片内总线的Master,根据DMA控制器模块的读写命令对片内总线进行读写访问,并对各总线上的读写信息进行记录。
图中AXI Bus、AHB Bus和APB Bus为微处理器三级总线结构对应的三类片内总线,其中高一级总线可以通过与它低一级总线之间的总线桥(Bridge)读写它的下一级或者更下级总线的信息。
参照图2,示出了本发明实施例中一种基于JTAG协议的微处理器在线调试方法对应的调试初始化过程框图。外部调试器通过在线调试模块对微处理进行调试时,首先要先进行一次初始化通信过程。该过程步骤如下:
步骤1,外部调试器读取TAP控制器模块内部指令寄存器的初始值,该步骤的作用为确认TAP控制器模块中指令寄存器的长度(JTAG协议规定IR长度可变);
步骤2,外部调试器读取TAP控制器模块内部BYPASS寄存器的值,该步骤的作用为确认微处理器的级联情况(JTAG协议支持多设备串联),可根据串联情况进行指令匹配;
步骤3,外部调试器读取TAP控制器模块内部ID寄存器的值,该步骤的作用是确认微处理的Identification code(设备号,JTAG协议中Identification code编码包含着生产商、产品类型和产品版本等信息),外部调试器可根据ID寄存器的数值确定TAP控制器模块中所有指令/数据寄存器对应的编码;
步骤4,外部调试器对TAP控制器模块内部INFO寄存器进行初始化,该步骤的作用是配置在线调试模块中BUS访问模块的总线访问接口。
参照图3,示出了本发明实施例中外部调试器通过JTAG协议访问微处理器的指令流程框图。该过程步骤如下:
步骤1,外部调试器判断INFO寄存器是否需要更改,如需要更改,则进行INFO寄存器的配置,如不需要更改则直接跳过该步骤;
步骤2,外部调试器根据JTAG协议时序在Shirt-IR阶段将ADDR寄存器对应的IR编码通过TDI端口打入TAP控制器模块,选中ADDR寄存器;
步骤3,外部调试器根据JTAG协议时序在Shirt-DR阶段将ADDR寄存器对应的目标值通过TDI端口打入TAP控制器模块,配置ADDR寄存器;
步骤4,外部调试器根据JTAG协议时序在Shirt-IR阶段将VALUE寄存器对应的IR编码通过TDI端口打入TAP控制器模块,选中VALUE寄存器;
步骤5,外部调试器根据JTAG协议时序在Shirt-DR阶段对VALUE寄存器进行读写,如为写访问则将对应的目标值通过TDI端口打入TAP控制器模块,如为读访问则在该阶段对TDO的输出进行读取;
步骤6,外部调试器决定是否进行连续传输,如为连续传输则返回步骤2,如传输结束,则直接返回空闲态。
参照图4,示出了本发明实施例中一种基于JTAG协议的微处理器在线调试方法对应的工作原理。该过程步骤如下:
步骤1,外部调试器通过JTAG协议向TAP控制器模块发出读写命令,对TAP控制器的指令/数据(IR/DR)寄存器进行读写;
步骤2,TAP控制器模块对寄存器进行解析,如果为ID、BYPASS、MBIST、INFO四类,则由TAP控制器模块处理,如果为ADDR、VALUE两类,则将解析出的结果传递给DMA控制器模块,等待它们的读写完成后,则再进行处理;
步骤3,DMA控制器模块对ADDR和VALUE进行解析,向BUS访问模块发出对微处理器的总线访问请求;
步骤4,BUS访问模块根据DMA控制器模块发起的访问请求和TAP控制器模块内部INFO寄存器的配置值,通过外部调试器指定的总线接口和读写长度发起对微处理器对应片内总线的总线读写。
本发明可实现对微处理器的在线调试,其具备的功能包含有断点挂起、单步执行、总线追踪、实现对微处理器内部存储器的内建自测试、查看和修改微处理器内核寄存器、查看和修改微处理器内部存储器。
本发明一种基于JTAG协议的微处理器在线调试模块的实现方法的提出可满足微处理器在线调试模块的高性能及多功能的需求,它具有如下优点:
1.本发明提供的实现方式具有传输速率快、时序性好、结构简单等优点;
2.本发明可实现对微处理器的多种调试功能;
3.本发明可实现对AXI总线、AHB总线和APB总线组成的三级片内总线架构微处理器的监听。
以上所述仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种基于JTAG协议的微处理器在线调试系统,其特征在于:包括TAP控制器模块、DMA控制器模块和BUS访问模块;
TAP控制器模块:外部调试器根据调试需求通过JTAG测试访问接口向TAP控制器模块的寄存器配置要访问的总线接口以及读写地址和读写数据,TAP控制器模块将相应寄存器的值发送给DMA控制器模块;外部调试器通过JTAG测试访问接口能够读取各寄存器的信息;
DMA控制器模块:对TAP控制器模块发送的寄存器的值进行解析,向BUS访问模块发出访问请求并将解析结果发送给BUS访问模块;
BUS访问模块:作为微处理器内部片内总线的Master,根据DMA控制器模块发起的访问请求以及解析结果、外部调试器要访问的总线接口,对片内总线进行读写操作,将各总线的读写信息写入TAP控制器模块的相应寄存器中。
2.根据权利要求1所述的一种基于JTAG协议的微处理器在线调试系统,其特征在于:TAP控制器模块内部设计有ID、BYPASS、ADDR、VALUE、MBIST、INFO六个寄存器;
其中,ID寄存器用于存储微处理器的版本信息;BYPASS寄存器用于存储微处理器的级联情况;ADDR寄存器用于配置对微处理器的读写地址、读写命令和读写类型;VALUE寄存器用于存储微处理器的读写数据;MBIST寄存器用于实现微处理器内部存储器的内建自测试;ID、BYPASS、MBIST的内容由TAP控制器模块产生;INFO寄存器用于存储要访问的总线接口信息,由外部调试器配置。
3.根据权利要求2所述的一种基于JTAG协议的微处理器在线调试系统,其特征在于:外部调试器对ADDR和VALUE两个寄存器进行配置,配置完成后TAP控制器模块将ADDR和VALUE两个寄存器的值发送给DMA控制器模块。
4.根据权利要求3所述的一种基于JTAG协议的微处理器在线调试系统,其特征在于:BUS访问模块设计有AXI、AHB和APB接口,AXI与微处理器的片内总线AXI Bus匹配,AHB与微处理器的片内总线AHB Bus匹配,APB与微处理器的片内总线APB Bus匹配。
5.根据权利要求4所述的一种基于JTAG协议的微处理器在线调试系统,其特征在于:BUS访问模块在工作时会对微处理器内部片内总线进行监听,实现总线跟踪。
6.一种基于JTAG协议的微处理器在线调试方法,其特征在于包括:
外部调试器对在线调试模块进行初始化;
外部调试器向在线调试模块写入要访问的微处理器总线接口、读写地址和数据;
外部调试器通过在线调试模块对微处理器进行在线调试,过程如下:
S1,外部调试器通过JTAG协议向TAP控制器模块发出读写命令,对TAP控制器的寄存器进行读写;
S2,TAP控制器模块对寄存器进行解析,如果读写的寄存器为ADDR、VALUE寄存器,则将ADDR、VALUE寄存器的值传递给DMA控制器模块;
S3,DMA控制器模块对ADDR和VALUE寄存器的值进行解析,向BUS访问模块发出访问请求并将解析结果发送给BUS访问模块;
S4,BUS访问模块根据DMA控制器模块发起的访问请求、ADDR和VALUE寄存器解析结果、TAP控制器模块内部INFO寄存器的配置值,对微处理器对应片内总线的总线读写;
S5,外部调试器通过JTAG协议读取TAP控制器模块中ADDR和VALUE寄存器的值,实现对读写结果的查询。
7.根据权利要求6所述的一种基于JTAG协议的微处理器在线调试方法,其特征在于,初始化步骤如下:
步骤1,外部调试器读取TAP控制器模块内部ID寄存器的初始值,该步骤的作用为确认TAP控制器模块中指令寄存器的长度;
步骤2,外部调试器读取TAP控制器模块内部BYPASS寄存器的值,确认微处理器的级联情况;
步骤3,外部调试器读取TAP控制器模块内部ID寄存器的值,确认微处理器的Identification code,以及TAP控制器模块中所有寄存器对应的编码;
步骤4,外部调试器对TAP控制器模块内部INFO寄存器进行初始化,配置在线调试模块中BUS访问模块的总线访问接口,BUS访问模块的总线访问接口为微处理器的AXI Bus、AHBBus或APB Bus总线接口。
8.根据权利要求6所述的一种基于JTAG协议的微处理器在线调试方法,其特征在于,外部调试器向在线调试模块写入要访问的微处理器总线接口、读写地址和数据,步骤如下:
步骤1,外部调试器判断INFO寄存器是否需要更改,如需要更改,则进行INFO寄存器的配置,如不需要更改则直接跳过该步骤;
步骤2,外部调试器根据JTAG协议时序在Shirt-IR阶段将ADDR寄存器对应的IR编码通过TDI端口打入TAP控制器模块,选中ADDR寄存器;
步骤3,外部调试器根据JTAG协议时序在Shirt-DR阶段将ADDR寄存器对应的目标值通过TDI端口打入TAP控制器模块,配置ADDR寄存器;
步骤4,外部调试器根据JTAG协议时序在Shirt-IR阶段将VALUE寄存器对应的IR编码通过TDI端口打入TAP控制器模块,选中VALUE寄存器;
步骤5,外部调试器根据JTAG协议时序在Shirt-DR阶段对VALUE寄存器进行读写,如为写访问则将对应的目标值通过TDI端口打入TAP控制器模块,如为读访问则在该阶段对TDO的输出进行读取;
步骤6,外部调试器决定是否进行连续传输,如为连续传输则返回步骤2,如传输结束,则直接返回空闲态。
9.根据权利要求6所述的一种基于JTAG协议的微处理器在线调试方法,其特征在于,外部调试器通过对微处理器片内总线进行读写,能够实现以下功能:
修改微处理器内部存储器对应的程序指令,实现断点挂起功能;
查看和修改微处理器内核寄存器和存储器。
10.根据权利要求6所述的一种基于JTAG协议的微处理器在线调试方法,其特征在于,MBIST寄存器生成测试命令并读取测试数据,实现微处理器内部存储器的内建自测试。
CN202211144455.1A 2022-09-20 2022-09-20 一种基于jtag协议的微处理器在线调试系统及调试方法 Pending CN115509834A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211144455.1A CN115509834A (zh) 2022-09-20 2022-09-20 一种基于jtag协议的微处理器在线调试系统及调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211144455.1A CN115509834A (zh) 2022-09-20 2022-09-20 一种基于jtag协议的微处理器在线调试系统及调试方法

Publications (1)

Publication Number Publication Date
CN115509834A true CN115509834A (zh) 2022-12-23

Family

ID=84504587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211144455.1A Pending CN115509834A (zh) 2022-09-20 2022-09-20 一种基于jtag协议的微处理器在线调试系统及调试方法

Country Status (1)

Country Link
CN (1) CN115509834A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116820867A (zh) * 2023-08-29 2023-09-29 腾讯科技(深圳)有限公司 一种芯片调试方法、装置及芯片

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116820867A (zh) * 2023-08-29 2023-09-29 腾讯科技(深圳)有限公司 一种芯片调试方法、装置及芯片
CN116820867B (zh) * 2023-08-29 2023-12-15 腾讯科技(深圳)有限公司 一种芯片调试方法、装置及芯片

Similar Documents

Publication Publication Date Title
US6754852B2 (en) Debug trigger builder
JP4335999B2 (ja) プロセッサ内蔵半導体集積回路装置
EP0636976B1 (en) Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions
US9037911B2 (en) Debug state machines and methods of their operation
EP0652516A1 (en) Integrated microprocessor
EP3369015B1 (en) Methods and circuits for debugging circuit designs
CN102103535B (zh) 多核处理器、多核处理器的调试系统和调试方法
JPH02287635A (ja) マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置
CN115146568B (zh) 一种基于uvm的芯片验证系统及验证方法
US7596719B2 (en) Microcontroller information extraction system and method
US10078113B1 (en) Methods and circuits for debugging data bus communications
EP1132816B1 (en) Automatic detection of connectivity between an emulator and a target device
CN115509834A (zh) 一种基于jtag协议的微处理器在线调试系统及调试方法
JP2008507025A (ja) 集積回路テスト用エミュレーション及びデバッグインターフェイス
US20060282706A1 (en) Program Counter Range Comparator With Equality, Greater Than, Less Than and Non-Equal Detection Modes
US6647511B1 (en) Reconfigurable datapath for processor debug functions
CN100533401C (zh) 测试具有异步微控制器的集成电路的仿真和调试接口
US9581643B1 (en) Methods and circuits for testing partial circuit designs
CN114691520A (zh) 基于处理器调试架构的指令可编程缓冲区设计系统
CN112557886A (zh) 协议转换桥接电路、知识产权核以及系统级芯片
Lixin et al. Implementation of high speed real time data acquisition and transfer system
US20040059973A1 (en) Apparatus for testing a device under test using a high speed bus and method therefor
Duan et al. An embedded tracing debug implementation for crossbar type bus in muti-core SoC
CN207946806U (zh) 一种调试器和调试装置
Agarwal et al. Advanced Regression Management for Post-Silicon Validation of Automotive SOCs

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