[其它产品/技术] KBA-如何使用JLink RTT调试CapSense PSoC Creator Tunner

[复制链接]
 楼主| jcky001 发表于 2025-6-26 16:10 | 显示全部楼层 |阅读模式
背景
       在MTB下,可以使用RTT Tunner调试CapSense,这样可以解放串口或I2C仅使用SWD即可,但是在上一代PSoC4 Creator下,却并不支持RTT Tunner,使用官方工具调试仍有诸多不便,为解决这个问题,于是就有了这个小工具~
  • PSoC4 RTT移植:
  • Segger安装目录下提供了RTT的源码,以V816版本为例,在如下路径:
D:\Program Files (x86)\SEGGER\JLink_V816\Samples\RTT\SEGGER_RTT_V816
将源码Copy至工程中,只需要添加如下图示三个文件即可,

  • 添加完成后在main.c中增加_write的重定向以及调用SEGGER_RTT_Init()初始化即可。
  • 编译下载,然后连接JLink,打开J-Link RTT Viewer, 选择好芯片即可:

顺便安立一下我做的RTT View,支持JLink下载固件。

  • 注意一点:如果运行不成功,可将Heap Size改大一些,比如0x200

  • JLink RTT Tunner
  • 目前的Creator Tunner支持串口、I2C、SPI等方式,接下来我们需要做的就是通过虚拟串口,将JLink RTT读取到的数据,转发给虚拟串口,以串口方式来Tunner,首先需要安装虚拟串口程序:com0com-3.0.0.0-i386-and-x64-signed.zip,安装成功后在设备管理器中就会虚拟出一对串口。 通过下图也可以看到两个com0com port。

  • com0com的简单介绍: com0com是windows内核模式下的虚拟串口驱动程序。可以创建虚拟串口对来连接两个COM端口。它是一个开源项目,地址是http://sourceforge.net/projects/com0com/
打开两个串口调试工具,相互之间发数据可简单测试其如何工作(不受波特率影响)

借助于它,我们可以通过RTT将读取到的CapSense数据,转发到一个虚拟串口上,然后在Creator Tunner下打开另一个配对串口,然后就可以愉快的Tunner了。
  • 先看官方Tunner支持的串口调试协议:

在CapSense_dsRam结构体前后加一个0x0D,0x0A的头以及0x00,0xFF,0xFF的尾即可,very very easy,于是我们照葫芦画瓢,在移植了RTT的工程上增加如下代码:

即可将CapSense_dsRam的数据按照串口协议的方式写入RTT Buffer中。
  • 重点来了:运行RTT2Serial4Tunner的小工具,连接JLink,选择一个com0com的串口,然后点RTT Start即可。

  • 5.    然后打开Creator Tunner,串口选择com0com的另一个串口,然后就可以仅使用SWD接口即可tunner了。

AdaMaYun 发表于 2025-6-26 23:25 | 显示全部楼层
非常不错的案例分享
OKAKAKO 发表于 2025-6-29 23:01 | 显示全部楼层
PSoC4 RTT移植非常不错
铁血丹心LLLL 发表于 2025-6-30 11:42 | 显示全部楼层
如果运行不成功,可将Heap Size改大一些
szt1993 发表于 2025-6-30 12:39 | 显示全部楼层
非常不错的实战案例分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1636

主题

5575

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部