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

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

【技术实现步骤摘要】

本专利技术涉及嵌入式处理器的跟踪调试领域,是实现嵌入式系统的跟踪调试的一种方法。
技术介绍
目前国际上实现跟踪的方法有Nexus标准和ARM的片上调试技术,但是JTAG IEEE1149. 1标准只能提供一种静态的调试方法,如处理器的启动和停止、软件断点、单步执 行、修改寄存器,而不能提供处理器实时运行时的信息。需要对JTAG的基本功能进行了加 强和扩展Nexus将调试开发分成四级,从第一级开始,每级的复杂度都在增加,并且上级功 能覆盖下一级。第一级使用JTAG的简单静态调试;第二级支持编程跟踪和实时多任务的跟 踪,用户用1/0引脚作为多路复用辅助调试口 ;第三级包括处理器运行时的数据写入跟踪 和存储器的读写跟踪;第四级增加了存储替换并触发复杂的硬件断点。但是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大小的数据,终 其中包是变长包,如图5所示,具体定义如下止点为end point。S/Nl位,PCl位,DRl位,DWl位,RRl位,RWl位,CRl位,CWl位,CNTR 8位PC—VALUERdAddr ;才有该选项。RdData项。WrAddr ;才有该选项。J总线的操作,o代表没有读待观测总线的操作。 J总线的操作,o代表没有写待观测总线的操作。当PC为1的时候,才有该选项'16位,记录读存储器的数据。当DR, RR,或者CR有效的时候,才有该选 24位或者16位,记录写存储器的地址。当DW, RW,或者CW有效的时候,16位,记录写存储器的数据。当DW, RW,或者CW有效的时候,才有该选项。 指令跟踪包指的是跟踪模块跟踪指令的运行情况输出的数据包,计算机可以根据 指令跟踪包分析出指令执行的情况,实现指令跟踪。指令跟踪包分为分支地址包(间接分 支包)和指令包(用于指示指令的执行)。分支地址包给出间接分支指令的目标地址。无 论分支包是否被本文档来自技高网...

【技术保护点】
一种嵌入式处理器跟踪调试系统的实现方法,其特征在于该方法实现步骤如下:(1)通过JTAG接口配置跟踪调试寄存器,设置触发和滤波条件控制跟踪;(2)监视程序存储器地址数据总线,数据存储器地址数据总线,以及待观测总线的地址和数据,与预设的跟踪调试寄存器相比较,根据设置的触发和滤波条件实现触发和滤波;(3)分析采集到的数据,判断指令是否执行、指令是不是分支指令;(4)当预设的数据滤波条件满足的时候输出数据包,输出包按照一定的包格式存到RAM中;(5)计算机通过JTAG接口把RAM中的数据读出,根据约定的协议解析包恢复跟踪信息。

【技术特征摘要】
一种嵌入式处理器跟踪调试系统的实现方法,其特征在于该方法实现步骤如下(1)通过JTAG接口配置跟踪调试寄存器,设置触发和滤波条件控制跟踪;(2)监视程序存储器地址数据总线,数据存储器地址数据总线,以及待观测总线的地址和数据,与预设的跟踪调试寄存器相比较,根据设置的触发和滤波条件实现触发和滤波;(3)分析采集到的数据,判断指令是否执行、指令是不是分支指令;(4)当预设的数据滤波条件满足的时候输出数据包,输出包按照一定的包格式存到RAM中;(5)计算机通过JTAG接口把RAM中的数据读出,根据约定的协议解析包恢复跟踪信息。2. 如权利要求1所述的一种嵌入式处理器跟踪调试系统的实现方法,其特征在于所述设置触发和滤...

【专利技术属性】
技术研发人员:李艳华李丹
申请(专利权)人:北京中电华大电子设计有限责任公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1