使用j-link的SWO引脚做为项目开发的调试日志输出

利用ITM在Cortex-M单片机上实现调试日志输出
本文介绍了如何在基于Cortex-M内核的MCU单片机上利用集成的仪器化跟踪单元(ITM)进行调试日志输出。通过连接SWO引脚,借助JLink调试器和keil软件配置,可以实现通过ITM端口0发送调试消息。具体步骤包括启用Trace功能、配置Debug(printf)Viewer窗口、重写Retarget.c文件中的intfputc函数以及调用ITM_SendChar函数。这种方法在硬件资源有限的情况下提供了便利的日志监测方案。
 开发测试调试时使用log日志功可以方便地监测程序的运行状态。

当前市面的大部分MCU单片机,都是基于Cortex-M内核的,其集成仪器化跟踪单元(ITM),可以支持调试消息的输出,只需要连接SWO引脚即可实现。

如果没有足够的硬件资源,日志输出将存在困难。使用这个方式就是一个好方法。

实现方法:
1 JLink调试器采用SW方式与MCU连接,并在keil中对debug相关选项卡进行重新配置。
界面说明
2 勾选启用Trace功能,按照实际情况配置内核时钟;keil中的Debug(printf)Viewer窗口可以显示ITM stimulus端口0的传输数据,启用端口0。
界面说明
3 编写printf函数。
Keil自带的重连文件(Retarget.c)位于安装\ARM\Startup目录下,将此文件复制拷贝,并添加到工程中,同时重写此文件中的int fputc(int ch, FILE *f)函数即可实现printf功能。
将fputc函数实现为通过ITM的端口0发送一个字节。ITM的端口0发送数据的功能CMSIS框架已提供相关接口, unsigned int ITM_SendChar (unsigned int ch)函数位于core_cm3.h文件中。
在这里插入图片描述
4 Keil软件开启Debug(printf)Viewer窗口,具体如图所示。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值