285|1

324

帖子

0

资源

一粒金砂(高级)

如何使用SEGGER J-Trace Pro流模式实现指令跟踪功能? [复制链接]

侵入式调试和非侵入式调试

 

在嵌入式应用的开发过程中,需要通过调试来解决程序运行过程中出现的问题,根据是否会打断程序的“全速运行状态”,调试方式可以分为侵入式调试和非侵入式调试两类。

侵入式调试手段如下:

• 停机以及单步执行程序

• 硬件断点和断点指令(BKPT)

• 变量数据观察点(Watch观察窗口)

• 访问寄存器的值

• 调试监视器异常

非侵入式调试手段如下:

• 在内核运行的时候访问存储器

• 指令跟踪,需要硬件包含指令跟踪单元(ETM)

通常情况下,我们采用的是侵入式调试,但这种调试会打破程序的全速运行状态。非侵入式调试则可以在保证程序全速运行的情况下,了解程序运行的情况。在调试大型软件和RTOS多任务系统,或者与通信时序相关的应用时(非侵入式调试会破坏通信时序),应用代码可能突然跑飞或者产生异常中断,而导致问题的原因可能难以发现。

此时非侵入式调试如指令跟踪这样的功能就有着不可比拟的作用。指令跟踪能够记录问题发生之前MCU内部的指令执行历史记录,这些信息可以帮助开发者回溯问题现场来准确定位问题发生的原因。

 

指令跟踪的实现方式

 

在嵌入式MCU调试中指令跟踪存在多种实现方式,通过对比我们将能够更清楚的了解Segger  J-Trace Pro产品流模式指令跟踪功能的强大之处。

 

(1)使用MCU片上缓存实现指令跟踪

一些MCU内部包含指令缓存区域,缓存区域依据不同芯片型号命名可能有所不同,例如Embedded Trace Buffer(ETB),Micro Trace Buffer(MTB),Embedded Trace FIFO(ETF)等。指令跟踪记录被保存在该片上区域,当程序停止运行时,PC端调试软件读取该区域内数据以获取指令跟踪数据。

640?wx_fmt=png

使用该方式实现指令跟踪存在的限制:

• 片上的缓存空间很小,通常缓存空间大小只有kb级别

• 只能记录非常有限的指令执行历史记录

 

(2)使用调试器内部缓存进行指令跟踪

另外一种实现指令跟踪的方式是调试器内部提供指令缓存空间,缓存空间大小可能为MB到GB级别,但受限于调试器本身的硬件实现成本,调试器内部所能够提供的缓存空间同样不会很大。

640?wx_fmt=png

该方式实现指令跟踪存在的限制:

• 片上的缓存空间为MB到GB范围

• 能记录有限的指令执行历史,但无法记录从应用开始执行到出现异常的全过程指令记录

• 通常需要暂停应用运行后,PC端软件才会读取缓存在调试器中的Trace数据

 

Segger J-Trace Pro流模式指令跟踪

 

前面的两种实现方式都因为缓存空间大小的影响而有其使用局限性,Segger J-Trace Pro产品则使用流模式的方式解决了前面两种方式存在的问题,能够给开发者带来成熟的指令跟踪解决方案。J-Trace Pro在SWD/JTAG调试接口引脚之外,与芯片通过额外的跟踪功能引脚连接,包括Trace时钟和数据传输引脚,MCU内部ETM模块中记录的指令通过J-Trace Pro以流模式的方式实时传输到PC端,此时指令的缓存空间在PC电脑端,因此最大的缓存空间甚至可以达到TB级别,彻底解决了前面两种实现方式所存在的局限性。

640?wx_fmt=png

J-Trace Pro支持通过流模式实时的将指令跟踪数据传输到电脑端,该方案还带来了如下优势:

• 指令缓存空间大小取决于电脑硬盘大小(TB级别)

• 能够记录应用从开始执行到出现异常的完整指令过程

• 能够记录用户与应用程序发生交互行为中的指令执行过程

• 提供的其他高级调试功能:

  🔺实时代码覆盖率分析

  🔺实时的代码执行情况分析

640?wx_fmt=png

本文介绍了嵌入式MCU调试过程中几种指令跟踪调试功能的实现方式,对比可以发现Segger J-Trace Pro产品的解决方案具有明显优势,此外Segger还提供了配套的调试软件Ozone,能够提供强大的指令跟踪调试功能。

个人签名

欢迎关注“麦克泰技术”


回复

5673

帖子

18

资源

五彩晶圆(中级)

硬件太贵了。功能确实强大。

个人签名

默认摸鱼,再摸鱼。2022、9、28


回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表