energyAware工具综合使用 - energyAware Commander SWO终端

在看这篇文章之前,强烈建议各位看官将energyAware Commander更新到最新版本。否则享受不到下面的福利哦。不要吝啬,赶快点击更新吧。

不知道大家是否有用过EFM32的SWO输出功能,如果有的话,那么是否有亲手测试过呢?主要功能是在调试时候,通过SWO口,使用printf函数,将信息打印到IDE环境里面。这个功能特别适合于调试一些协议。以前我们调试协议的时候,大多数是通过物理串口,将信息打印出来,但是现在却可以通过SWO引脚,来实现这样的功能了。

好吧,我本不想说的,以上也是有限制的。限制就在于,打印的信息,只能输出到IDE环境里面,而且还必须处于调试状态才可以。我们要记得,在调试状态下EFM32是进不了低功耗模式(EM2~EM4)的,因此和实际运行是有区别的。而问题大多出都处在这个差别上。那么有没有什么办法可以让MCU独立运行,又能打印输出信息,而有不占用硬件串口呢?

以前没有,现在有了,那就是将信息打印到energyAware Commander的SWO终端里面。以下,我们来看看如何操作吧。

硬件平台:TG STK, TG840.

软件Demo:IAR为例

1. 打开Simplicity studio,将energyAware Commander更新到最新版本。

2. 打开energyAware Commander,在左侧的下拉菜单中,找到SWO终端(SWO Terminal)。

3. 将右侧显示的void setupSWOForPrint(void)函数,完整的拷贝到你的工程里面,并且在主函数中调用。这里需要注意的是,就是SWO引脚的配置可能需要改动一下。为了和STK兼容,该函数内部会判断是何种系列的EFM32,如果是GG,LG,WG则将SWO口配置到PF2上,其余系列则配置到PC15上。唯一这里需要注意,需要和你的硬件要做到相互匹配。

4. 打开IAR的工程配置选项,General Options -> Library Configuration -> Library low-level interface implementation -> 勾选Semihosted,勾选Via SWO

5. 然后将工程编译下载。下载完成之后,断开IAR环境。

6. 确保STK已经连接到了PC,打开energyAware Commander,选择Debug Mode为对应的模式。这里选择MCU。

7.打开SWO终端,点击开始。看到了吗,上面已经把输出的信息打印出来了。

为了方便大家体验这个功能,我做了一个简单的程序,用一个timer进行波形捕获,然后通过printf打印出来。

代码请参考如下的链接:http://download.csdn.net/detail/efm32/6420033

效果如下:

energyAware工具综合使用 - energyAware Commander SWO终端_第1张图片

你可能感兴趣的:(energyAware工具综合使用 - energyAware Commander SWO终端)