如何用SWO(SWV)引脚输出LOG信息

当面临UART接口不足,但需要在运行中输出LOG以辅助调试时,可以使用SWO(SWV)管脚。通过引入并修改工程文件,将retargetserial替换为retargetswo,实现SWO接口的printf输出。在调试模式下,Console窗口会显示LOG信息;非调试状态下,借助SimplicityCommander的SWOTerminal查看。注意,进入低功耗模式可能引起乱码问题。
摘要由CSDN通过智能技术生成

如果芯片的UART不够用,而又需要在程序运行过程中输出一些LOG信息,以便调试、解决问题,那么我们就可以使用调试接口的SWO(SWV)管脚来输出LOG。

首先,需要把下列文件添加到工程文件夹中:

  1. SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\hardware\kit\common\bsp中的bsp_trace.c和bsp_trace.h,添加到工程文件夹里的hardware\kit\common\bsp中;
  2. SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v7\hardware\kit\common\drivers中的retargetswo.c和retargetswo.h,添加到工程文件夹里的hardware\kit\common\drivers中,并删掉retargetserial.c和retargetserial.h。

然后,修改main.c中的下列代码:

//#include "retargetserial.h"

#include "retargetswo.h"

//  RETARGET_SerialInit();

  RETARGET_SwoInit();

  printf("Hello SWO!\n");

  while(1) ;

在Debugger中运行时,可以在Console窗口看到printf的输出信息,如下图。

如果不用调试方式运行,那么可以用Simplicity Commander的SWO Terminal窗口来显示printf的信息。需要先连接JLink和Target,然后点右下角的Start按钮。

注意:如果程序会运行到低功耗休眠模式,那么SWO Terminal会打印出一大堆乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值