前面几篇介绍了ISYSTEM的基本调试界面和功能,相比我之前用过的IDE,除了几种断点方式和脚本功能以外,应该都是比较简单,稍微操作一下就可以直接上手,后续我将介绍winIDEA的Analyzer 功能。
1 Analyzer简介
iSYSTEM Analyzer是一个强大的工具,它使您能够记录程序执行跟踪、数据跟踪或其他跟踪消息,然后分析这些记录以产生覆盖率或计时测量。
IC5700 有1GB的缓存,最大 并行模式下250 MHz 采样率。
刚好5744是有Nexus接口,可以提供ISYSTEM实现追踪功能,如果是芯片没有接口,ISYSTEM还提供了其他方法,具体参考官网。
我们将设备接上控制器,View->Trace 打开Trace界面。
通过菜单的按钮,打开需要的窗口。
Analyzer功能包括
Profiler 监控、Profiler 统计、Coverage 统计、Trace 监控四个窗口。具体怎么使用将在后续章节中介绍。
2 Analyzer配置
Hardware->CPU Option->Analyzer
首先指定调试接口,这里根据芯片特点,选择对应的接口类型。
具体配置点击configuration。
打开
在Profiler配置采样的接口,Code下面设置监控的函数,Data下面选择监控的变量。
3启动Analyzer
启动程序,启动trace,
软件右下角显示SAMPLING表示正在采样。
然后手动停下,可以看到窗口已经记录下的运行信息。
Profiler Timeline窗口记录监视函数的运行情况。
深红色为运行在当前函数,浅色为调用其他函数。调用完成后会返回当前函数。
根据我的实际使用,由于程序运行加快,由于缓存有限,手动启动trace手动停止不能做到很好的检测效果。建议结合断点的方式,选择性的监控某一区域的代码。这里以main函数里一个循环周期为例,先在程序结束位置打上一个断点,再启动Trace,最后启动程序运行,程序会运行到该断点位置停止。
更多的,我们可以利用ISYSTEM提供的丰富单点功能,实现不同的目的。
比如,我设置运行当iCounter大于0x6FF之前这段程序运行的过程。
我们先增加一个硬件断点,设置进入断点条件。
然后启动Trace,启动程序。结果如下图。
确实如设置的一样,当该变量达到这个值,程序中断。