背景: 在MTB下,可以使用RTT Tunner调试CapSense,这样可以解放串口或I2C仅使用SWD即可,但是在上一代PSoC4 Creator下,却并不支持RTT Tunner,使用官方工具调试仍有诸多不便,为解决这个问题,于是就有了这个小工具~ - 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

- 目前的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了。 
在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了。

|