嵌入式处理器的跟踪调试方法.pdf

上传人:1*** 文档编号:996117 上传时间:2018-03-24 格式:PDF 页数:9 大小:359.52KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810227987.5

申请日:

2008.12.04

公开号:

CN101751327A

公开日:

2010.06.23

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 11/36变更事项:专利权人变更前:北京中电华大电子设计有限责任公司变更后:北京中电华大电子设计有限责任公司变更事项:地址变更前:100102 北京市朝阳区利泽中二路2号望京科技创业园A座五层变更后:102209 北京市昌平区北七家未来科技城南区中国电子网络安全和信息化产业基地C栋|||授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20081204|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

北京中电华大电子设计有限责任公司

发明人:

李艳华; 李丹

地址:

100102 北京市朝阳区利泽中二路2号望京科技创业园A座五层

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明提供一种嵌入式处理器跟踪调试系统的设计方法。该方法可以实现对嵌入式处理器的指令跟踪和数据跟踪。计算机通过JTAG接口配置跟踪模块里的寄存器;跟踪模块根据计算机设置的触发条件获取需要的数据,并把数据暂存到存储器中;计算机通过JTAG接口读取跟踪到的数据,然后对跟踪数据分析重组显示指令和总线的地址/数据信息。本发明所公开的跟踪模块适用于嵌入式处理器的调试模块的跟踪领域,相比一般的跟踪模块,功能强大,设计简洁。

权利要求书

1: 一种嵌入式处理器跟踪调试系统的实现方法,其特征在于该方法实现步骤如下: (1)通过JTAG接口配置跟踪调试寄存器,设置触发和滤波条件控制跟踪; (2)监视程序存储器地址数据总线,数据存储器地址数据总线,以及待观测总线的地址和数据,与预设的跟踪调试寄存器相比较,根据设置的触发和滤波条件实现触发和滤波; (3)分析采集到的数据,判断指令是否执行、指令是不是分支指令; (4)当预设的数据滤波条件满足的时候输出数据包,输出包按照一定的包格式存到RAM中; (5)计算机通过JTAG接口把RAM中的数据读出,根据约定的协议解析包恢复跟踪信息。
2: 如权利要求1所述的一种嵌入式处理器跟踪调试系统的实现方法,其特征在于所述设置触发和滤波条件控制跟踪是设置存储器地址或数据、计算机或者待观测总线的地址或数据为触发条件,设置存储器地址范围或数据范围、计算机范围或者待观测总线的地址范围或数据范围为滤波条件。
3: 如权利要求1所述的一种嵌入式处理器跟踪调试系统的实现方法,其特征在于(3)进一步包括以下步骤:当第一次满足触发条件的时候或者同步频率计数器为0的时候输出同步包;如果当前指令是直接分支指令,则记录该条指令是否被执行的信息,如果没有执行,则输出指令包;如果被执行了,但连续执行的指令个数等于15,则输出指令包;如果被执行了,但连续执行的指令个数小于15,则计数器加一,不打包输出;如果当前指令是间接分支指令,则输出分支地址包,包含下一条指令的地址。

说明书


嵌入式处理器的跟踪调试方法

    技术领域:

    本发明涉及嵌入式处理器的跟踪调试领域,是实现嵌入式系统的跟踪调试的一种方法。

    背景技术:

    目前国际上实现跟踪的方法有Nexus标准和ARM的片上调试技术,但是JTAG IEEE1149.1标准只能提供一种静态的调试方法,如处理器的启动和停止、软件断点、单步执行、修改寄存器,而不能提供处理器实时运行时的信息。需要对JTAG的基本功能进行了加强和扩展Nexus将调试开发分成四级,从第一级开始,每级的复杂度都在增加,并且上级功能覆盖下一级。第一级使用JTAG的简单静态调试;第二级支持编程跟踪和实时多任务的跟踪,用户用I/O引脚作为多路复用辅助调试口;第三级包括处理器运行时的数据写入跟踪和存储器的读写跟踪;第四级增加了存储替换并触发复杂的硬件断点。但是Nexus标准比较抽象,实际实现技术难度比较高。

    ARM处理器中采用的片上调试技术(on-chip debugger)。片上调试技术通过在芯片的硬件逻辑中加入调试模块,在一定的条件下实现实时跟踪和分析。

    目前国内芯片实现跟踪功能的比较少,调试手段主要还是静态调试。通过断点和单步把处理器暂停,进行读写寄存器和存储器的操作。但是跟踪可以方便的捕捉高速信号以及实现高级的调试功能,可以记录程序高速运行时轨迹,便于用户程序的查错、恢复等。

    发明内容:

    本发明主要目的是为嵌入式系统的调试实现指令跟踪和总线的地址数据跟踪的功能。PC机通过JTAG接口配置跟踪模块里的寄存器。跟踪模块根据已设置好的触发条件,采集需要的数据,并把数据以一定的格式打包后存放到RAM中。PC机通过JTAG接口把RAM中的数据读出,根据预先约定的协议解析包恢复跟踪信息。

    跟踪包含处理器指令跟踪和数据跟踪。数据跟踪记录存储器总线或待观测总线的地址和数据信息。指令跟踪记录正在运行的指令,可以记录运行程序在每个周期所执行的操作,也可以有选择的只记录跳转异常等特殊行为。处理器指令可以分为两类:直接分支指令和间接分支指令。直接分支指令指的是可以通过当前正在执行的指令推出下一条将要执行的指令。仅需要知道当前执行的指令以及这条指令是否被执行,就可以知道下一条指令的地址。间接分支指令指的是不能由当前执行的指令推出下一条将要执行的指令。例如:所有的异常如中断和复位等。以及与PC相关的指令。CALL[Rs];JMP[Rs];JMP[[Rs+]];JMP[A+DPTR]。指令执行指的是指令到了执行态,并且通过了条件测试。将会使用字母E(executed)来表示。指令没有执行指的是指令到了执行态,但没有通过条件测试,将会使用字母N(notexecuted)来表示。处理器指令跟踪记录正在运行的指令,详细的记录信息将会导致所需的缓冲的容量要足够大,为了保证足够多的记录,每条记录所包含的信息必然要减少,本发明通过实现触发和滤波的功能并且根据处理器的指令特点有选择的记录信息,减少跟踪缓冲RAM的容量。其中触发表明什么时候开始采集数据,滤波是有选择的把总线的地址数据信息存入RAM。设置存储器地址或数据、PC或者待观测总线的地址或数据为触发条件。设置存储器地址范围或数据范围、PC范围或者待观测总线地地址范围或数据范围为滤波条件。

    跟踪模块根据已设置好的触发条件,采集需要的数据,并把数据以一定的格式打包后存放到RAM中。输出包包括同步包和指令包,其中同步包是在第一次触发条件满足的时候或者每隔一定的时钟周期输出的同步信息包;指令包:首先判断是否是分支指令,如果是分支指令则输出分支地址包,再判断该条指令是否被执行,如果没有被执行则输出指令包;如果被执行且计数器到15,则输出指令包;如果被执行但计数器不到15,则计数器加一。由于一般的程序代码顺序执行的几率比较大,本发明公开的设计输出包的流程如图1所示。当第一次满足触发条件的时候或者同步频率计数器为0的时候输出同步包,同步包中包含程序当前的指令地址。如果当前指令是直接分支指令,则记录该条指令是否被执行的信息,如果没有执行,则输出指令包;如果被执行了,但连续执行的指令个数等于15,则输出指令包;如果被执行了,但连续执行的指令个数小于15,则计数器加一,不打包输出;如果当前指令是间接分支指令,则输出分支地址包,包含下一条指令的地址。

    附图说明:

    图1为输出包流程

    图2为跟踪模块的整体框图

    图3为控制模块框图

    图4为RAM框图

    图5为包的格式定义

    具体实施方式:

    跟踪模块的工作流程是:首先通过JTAG接口设置触发条件和滤波条件,触发条件指示什么时候开始采集数据;滤波条件有选择的把采集到的数据存放到RAM中。在处理器正常运行的过程中根据设置的触发条件和滤波条件采集需要的信息,并把采集到的数据按照一定的格式打包存放到RAM中。PC机通过JTAG接口把RAM中的数据读出,根据预先约定的协议解析包恢复跟踪信息。

    跟踪模块的整体框图如图2,

    其中控制模块通过JTAG接口配置触发条件和滤波条件。如图3所示,控制模块的输入信号包括指令地址,数据存储器的地址总线,数据存储器的数据总线,程序存储器的地址总线,程序存储器的数据总线,待观测总线的地址,待观测总线的数据,JTAG接口信号。输出信号包括指令跟踪使能,数据跟踪使能,触发使能,同步使能。跟踪模块的输入信号有来自控制模块的控制信号和来自处理器的总线信息,如当前的指令地址,下一条指令地址,数据存储器的地址,数据存储器的数据,程序存储器的地址,程序存储器的数据,待观测总线的地址,待观测总线的数据,是否被执行信号,是否是分支指令信号。跟踪模块的输出信号是RAM的接口信号,如控制信号,数据总线和地址总线。

    跟踪模块的输出信息以数据包的格式放到RAM中,为了在处理器的一个时钟周期里把数据包写入RAM中,RAM的写入频率是处理器时钟频率的4倍。如图4所示,当RAM中的数据存满之后,新数据取代旧数据存入RAM。根据触发点Trigger point的位置,开始计数,当计数到跟踪后的计数器(trace after count)的值的时候,就停止往RAM里存数。PC机通过JTAG接口读取RAM的数值。从End point+1的地址开始读,读RAM大小的数据,终止点为end point。其中包是变长包,如图5所示,具体定义如下:

    S/N 1位,1代表程序顺序执行,0代表程序跳转。

    PC  1位,1代表记录PC,0代表不计录PC。

    DR  1位,1代表有读数据存储器的操作,0代表没有读数据存储器的操作。

    DW  1位,1代表有写数据存储器的操作,0代表没有写数据存储器的操作。

    RR  1位,1代表有读待观测总线的操作,0代表没有读待观测总线的操作。

    RW  1位,1代表有写待观测总线的操作,0代表没有写待观测总线的操作。

    CR  1位,1代表有读程序存储器的操作,0代表没有读程序存储器的操作。

    CW  1位,1代表有写程序存储器的操作,0代表没有写程序存储器的操作。

    CNTR 8位,记录当前counter的值。

    PC_VALUE 24位,记录下一条指令的PC值。当PC为1的时候,才有该选项。

    RdAddr  24位或者16位,记录读存储器的地址。当DR,RR,或者CR有效的时候,才有该选项。

    RdData  16位,记录读存储器的数据。当DR,RR,或者CR有效的时候,才有该选项。

    WrAddr  24位或者16位,记录写存储器的地址。当DW,RW,或者CW有效的时候,才有该选项。

    WrData  16位,记录写存储器的数据。当DW,RW,或者CW有效的时候,才有该选项。

    指令跟踪包指的是跟踪模块跟踪指令的运行情况输出的数据包,计算机可以根据指令跟踪包分析出指令执行的情况,实现指令跟踪。指令跟踪包分为:分支地址包(间接分支包)和指令包(用于指示指令的执行)。分支地址包给出间接分支指令的目标地址。无论分支包是否被跟踪,都会输出。此时,符号位PC为1,PC_VALUE值为下一条PC值。指令跟踪包有两种基本单元:E代表指令条件满足被执行以及N代表指令条件不满足没被执行。举例如下:

      指令  Atoms  指令跟踪包  包格式  Mov  E  Add  E  Jb<fail>  N  EEN  10000000 00000010  Jmp lable1  E

      指令  Atoms  指令跟踪包  包格式  …….  Lable1:MOV  direct,[Rs]  E<data1>  EE<data1>  001100000 0000010  Rs Rs所指的数据  direct direct所指  的数据  Cmp  E  Cjne<fail>  N  EN  100000000 0000001

    因为Jb指令没有执行而输出EEN。符号位S/N为1,CNTR值为当前的counter值(10)。因为执行mov data指令,符号位DR,DW为1,CNTR值为当前的counter值(10),RdAddr值为Rs,RdData值为Rs所指的数据,WrAddr值为direct,WrData值为direct所指的数据。因为Cjne指令没有执行,符号位S/N为1,CNTR值为当前的counter值(01)。

    数据跟踪包跟踪设定的地址和数据值。分别用DR,DW,RR,RW,CR,CW代表数据存储器读,数据存储器写,待观测总线读,待观测总线写,代码存储器读,代码存储器写。由于每条指令只会有一次读,一次写。所以使用RdAddr表示读数据的地址,使用RdData表示读数据的数据,使用WrAddr表示写数据的地址,使用WrData表示写数据的数据。

    同步包在跟踪使能之后,同步每n条指令同步一次。N条指令的n值应该通过一个控制模块中的同步计数器寄存器进行设置。同步包符号位PC为1,PC_VALUE值为下一条PC值。

嵌入式处理器的跟踪调试方法.pdf_第1页
第1页 / 共9页
嵌入式处理器的跟踪调试方法.pdf_第2页
第2页 / 共9页
嵌入式处理器的跟踪调试方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《嵌入式处理器的跟踪调试方法.pdf》由会员分享,可在线阅读,更多相关《嵌入式处理器的跟踪调试方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明提供一种嵌入式处理器跟踪调试系统的设计方法。该方法可以实现对嵌入式处理器的指令跟踪和数据跟踪。计算机通过JTAG接口配置跟踪模块里的寄存器;跟踪模块根据计算机设置的触发条件获取需要的数据,并把数据暂存到存储器中;计算机通过JTAG接口读取跟踪到的数据,然后对跟踪数据分析重组显示指令和总线的地址/数据信息。本发明所公开的跟踪模块适用于嵌入式处理器的调试模块的跟踪领域,相比一般的跟踪模块,功能强。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1