TRACE32调试:基础调试技巧之SystemMode、SNOOPer

汽车嵌入式开发,调试必不可少,丰富的调试手段意味着排查问题时,可事半功倍。本文讨论一下TRACE32使用中的两个基础技巧。

  • SystemMode

  • SNOOPer变量采集、分析及数据导出

1、系统(System)模式理解

使用TRACE32调试过程中,大家经常使用系统模式,比如:Attach、Up等。这里主要说一下Up模式:

Up模式:CPU执行复位动作,指向链接文件(*.lsl)定义的初始化地址,即:RESET标号指向的地址,如下所示:
在这里插入图片描述
上图使能了Cached,0x80000020和0xA0000020指向同一块物理地址,在Trace32中执行Up动作,程序自动复位,并指向启动地址,如下所示:
在这里插入图片描述
如上可以看出,Up模式与执行复位动作功能类似。

2、SNOOPer

SNOOPer主要作用:程序在运行过程中,进行周期性采样。所以,利用这个特性,在Debug过程中,可以对目标参数的运行状态进行时时监控。具体操作如下:

(一)打开SNOOPer面板

Trace->Configuration…->在"METHOD"中,选择SNOOPer,如下所示:
在这里插入图片描述
(二)参数配置

参数配置界面如下:
在这里插入图片描述
A:采样频率设置,如上设置参数的采样频率为10ms

B:选择需要采样的参数

如果要采样的数据是结构体成员,可以直接在"Select"中输入,如下所示:
在这里插入图片描述
如果要采样的数据是数组成员,可以直接在"Select"中输入,如下所示:
在这里插入图片描述
C:采样的最大次数

D:数据存储模式

FIFO:如果数据采样到了最大次数,则保存最新的数据,eg:SIZE = 10保存最后采样的10次数据。
Stack:如果数据采样到了最大次数,保存最开始的数据。eg:SIZE = 10保存最开始的10次数据。
E:可以选择数据采样的模式,如上:当数据改变时采样。
提示:也可以采样PC(Program Counter)寄存器的变化,记录程序的运行时序。
在这里插入图片描述
通过命令Trace.List DEFault /SplitCORE 查看各Core的运行状况,如下所示:
在这里插入图片描述
(三)采样示例

选择采样参数,如下所示:
在这里插入图片描述
运行程序,开始采样,如下所示:

在这里插入图片描述
(四)采样数据分析

单击Break按钮,暂停程序。可以通过观测数据的变换进行问题分析,

  • 单个变量采样分析如下所示:
    在这里插入图片描述
    对于采样的变量,也可以使用命令的方式直接作图,命令所示:
SNOOPer.DRAW.Var %Decimal Window_State /ZoomTrack

解释

  1. %Decimal表示用十进制显示参数Window_State
  2. /ZoomTrack表示数据显示时,自适应窗口大小。
  • 多个变量采样分析,如下所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    SNOOPer最多可以采样16个变量。

3、采样数据输出

如果觉得SNOOPer的图形分析不是很理想,也可以将采样的数据导出,使用第三方工具进行分析。

(一)输出设置

本文设置保存的格式为*.csv,如下所示:
在这里插入图片描述
提示:选中Append,则下一次记录的数据追加在文件后面,如果不勾选,则每次采样时,覆盖之前的数据。

(二)开始数据采样

数据采样如上第二小节。

(三)导出采样数据

1、对如下的SNOOPer.List数据进行输出
在这里插入图片描述
2、设置输出内容
本文数据记录ti.back、address、data、symbol四项内容,如下所示:
在这里插入图片描述
3、查看保存的数据

在这里插入图片描述
如上使用的命令如下:

PRinTer.FILE C:\Users\SongXin\Desktop\DataLog.csv CSV
WinPrint.SNOOP.List ti.back address data symbol

如果使用第三方工具分析,可能需要时间基准,而ti.back记录的是两个参数之间的采样间隔时间,不便于作图,可以在Trace中添加Time.ZERO参数,操作如下:
在这里插入图片描述
再次输出*.csv文件,如下所示:
在这里插入图片描述

命令如下所示:

;将ti.ZERO作为列表的第一个参数
Trace.List TIme.ZERO DEFault /Track
;保存数据到*.csv文件,同时指定文件路径
PRinTer.FILE C:\Users\SongXin\Desktop\DataLog.csv CSV
;设置要保存的参数
WinPrint.SNOOP.List ti.ZERO address data symbol ti.back

4、自定义数据导出及作图

数据分析时,如果仅想捕获需要的信息,并将其图形化处理,如何操作?
举例:仅提取参数Window_State、State_Cnt,将两者数据导出到*.csv文件,并分析两者随时间的变化趋势。采样数据如下所示:
在这里插入图片描述
使用自定义命令:

;保存数据到*.csv文件,同时指定文件路径
PRinTer.FILE C:\Users\SongXin\Desktop\DataLog.csv CSV
;设置要保存的参数
WinPrint.SNOOP.List TIme.ZERO Var

数据保存到指定路径下的*.csv文件,保存的数据内容如下所示:
在这里插入图片描述
使用Excel作图,相比于Trace32的Draw,数据变化更容易分析。数据变化如下所示:
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值