【RTT新一代调试技术试用】

背景

目的:ARM单片机需要打印调试信息
环境:WIN10 、STM32H7VB系统板、JLINK调试器

SWD接口下有个SWV

SWV 是由仪器化跟踪宏单元 ITM(Instrumentation Trace Macrocell)和 SWO 构成的。 SWV 实现了一种从 MCU 内部获取信息的低成本方案, SWO 接口支持输出两种格式的跟踪数据, 但是任意时刻只能使用一种。两种格式的数据编码分别是 UART(串行) 和 Manchester(曼彻斯特)。当前 JLINK 仅支持 UART编码, SWO 引脚可以根据不同的信息发送不同的数据包。 当前 M3/M4 可以通过 SWO 引脚输出以下三种信息:
(1) ITM 支持 printf 函数的 debug 调用(工程需要做一下接口重定向即可)。 ITM 有 32 个通道, 如果使用 MDK 的话,通道 0 用于输出调试字符或者实现 printf 函数, 通道 31 用于 Event Viewer,这就是为什么实现 Event Viewer 需要配置 SWV 的原因。
(2) 数据观察点和跟踪 DWT(Data Watchpoint and Trace)可用于变量的实时监测和 PC 程序计数器采样。
(3)时间戳, ITM 还附带了一个时间戳的功能:当一个新的跟踪数据包进入了 ITM 的 FIFO 时, ITM就会把一个差分的时间戳数据包插入到跟踪数据流中。跟踪捕获设备在得到了这些时间戳后,就可以找出各跟踪数据之间的时间相关信息。另外,在时间戳计数器溢出时也会发生时间戳数据包。

新一代调试技术

RTT是SEGGER开发板的,基于SWD调试接口的数据通信方式,仅需SWDIO和SWCLK。而Event Recorder是MDK开发的,和RTT类似的通信机制。相比基于SWO引脚的ITM数据传输,速度要快很多。
调试速度对比

安装

Jlink驱动下载链接,进入官网下载驱动,如下图,根据自己的环境选择下载。
Jlink下载截图

  1. 下载上面的资源包并进行安装
  2. 安装路径任意位置
  3. 一路next
    安装完成后,windows10有这个软件列表就算成功
    win10软件列表
    文件路径如下文件路径

移植RTT库

找到安装路径下的这个压缩包进行解压请添加图片描述
解压后文件如下
请添加图片描述
需要如下文件
请添加图片描述

请添加图片描述
将上面的文件复制到在stm32工程中,路径随意就行
请添加图片描述
MDK中添加c文件和头文件路径
请添加图片描述
请添加图片描述
取消下面如下选项
请添加图片描述
在main中添加头文件

#include "SEGGER_RTT.h"

这样使用

     SEGGER_RTT_Init();
     SEGGER_RTT_printf(0, "Hello world !\r\n");  // 原接口

到此移植完成

调试

然后打开上面JLinkRTTViewer这个软件,点击File中的Connect
请添加图片描述
以stm32h7vb为例进行如下设置
请添加图片描述
然后这个窗口就会打印信息
请添加图片描述
此方法不管是在调试还是正常运行时打印信息都OK
Enjoy it!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值