电子工程专辑
UBM China

使用在线仿真器(ICE)进行程序优化

上网日期: 2007年11月22日 ?? 作者: 张国跃 ?? 我来评论 字号:放大 | 缩小 分享到:sina weibo tencent weibo tencent weibo


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友

关键字:在线仿真器? ICE? 代码覆盖率?

目前,在线仿真器(In Circuit Emulator,ICE)在嵌入式系统开发中被越来越多的工程师所采用。尤其是在国外嵌入式开发公司中,ICE是一种必备的调试工具,被大规模地应用,以提高开发调试阶段的效率。但在国内,由于调试习惯和开发成本的原因,仿真器更多是在产品开发初期的底层驱动程序调试阶段中被应用。当产品的性能比较稳定后,工程师往往会采用串口调试方法进行应用程序的调试。

与仿真器调试相比,串口调试的功能比较简单,人机交互功能也不够友好。遇到复杂的程序错误时,开发效率可能会大大降低。一个功能强大的ICE,往往能够提供丰富的调试手段,使调试工作事半功倍。ICE为嵌入式调试工作所带来的方便和高效,只有使用者才能够深刻地体会。

现在市面上的ICE种类很多,功能也有很大的不同。很多仿真器只能提供基本的调试功能,如设置断点、系统资源的观测等。有些高级功能,如嵌入式跟踪宏单元(Embedded Trace Macrocell,ETM)跟踪功能,只有一些高端仿真器才会提供,当然价格也比一般仿真器要高出不少。本文主要介绍使用ICE在程序优化方面的一些应用,其中要用到一些高级功能。

功能1:任意两条语句间的运行时间的测量

当编好一段代码,想计算这段代码的运行时间,为代码优化提供依据,该如何准确测量这段时间?

没有仿真器的话,有以下两种方法可以采用:

1. 手动计时,从执行到这段代码时开始看手表计时,到这段代码运行结束时停止计时。这种方式误差很大,对于执行时间只有几个微秒甚至更短时间的代码段,这种方式显然不能满足要求。

2. 在代码中加入计时函数。这种方式具有一定准确度,但是会增加代码的复杂度,计时结果需要打印输出。

如果使用ICE仿真器,这个工作就变得很简单了。以横河公司的advicePRO为例,在其所使用的自带的调试软件microVIEW-PLUS(以下简称MVP)中,既不需要看手表也不需要修改代码,只要在代码两端设置断点就可以轻松获得这段代码的运行时间,而且精确度可达20ns的范围。如图1所示,在执行到第一个断点b1时,将窗口状态栏中的时间清零,再执行代码,程序停在第二个断点b2时,这段代码的执行时间就会精确地显示在状态栏中。

图1:设置断点,以进行两条语句间的运行时间的测量。
图1:设置断点,以进行两条语句间的运行时间的测量。


1???2???3?下一页?最后一页





我来评论 - 使用在线仿真器(ICE)进行程序优化
评论:
*? 您还能输入[0]字
分享到: 新浪微博 qq空间
验证码:
????????????????
?

关注电子工程专辑微信
扫描以下二维码或添加微信号“eet-china”

访问电子工程专辑手机网站
随时把握电子产业动态,请扫描以下二维码

?

5G网络在提供1Gbps至10Gbps吞吐量方面具有很好的前途, 并且功耗要求比今天的网络和手机都要低,同时还能为关键应用提供严格的延时性能。本期封面故事将会与您分享5G的关键技术发展,以及在4G网络上有怎样的进步。

网友推荐相关文章
?
?
有问题请反馈
推荐到论坛,赢取4积分X