1. 使用Jlink-RTT
单片机开发过程中,除了debug调试之外,还可以使用调试工具-RTT来代替串口进行信息的交互。
RTT是什么?
RTT( Real Time Terminal)是SEGGER公司新出的可以在嵌入式应用中与用户进行交互的实时终端。J-Link驱动4.90之后的版本都支持RTT。RTT既可以从MCU上输出信息、也可以向应用程序发送信息,由于其高速的特性,所以不影响MCU的实时性。
RTT实现原理就是J-link与MCU共享内存。操作也非常简单,安装好JLINK之后,会在JLink_V622c\Samples\RTT目录下有一个压缩包,解压之后就可以得到RTT的源码和example。如下图:
使用方法
在主函数文件的起始处添加SEGGER_RTT.h,就可以使用了。使用方法如下:
SEGGER_RTT_ConfigUpBuffer(0,NULL,NULL,0,SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL)
:初始化SEGGER_RTT_WriteString(0,"字符串")
:直接输出字符串SEGGER_RTT_printf(0,"字符串",输出格式)
:相当于printf,可以输出各种数据类型- 然后就可以使用RTTViewer或者RTTClient显示打印输出了
2. 使用Jlink-scope
J-Scope是什么?
J-Scope是SEGGER公司推出的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。它不需要SWO或目标上的任何额外引脚等功能,但使用可用的标准调试端口。J-Scope可以以类似示波器的方式显示多个变量的值。它读取elf或axf文件并允许选择多个变量进行可视化。只需将目标微控制器连接到J-Link并启动J-Scope。只需几个步骤即可配置J-Scope,并选择要显示的符号。配置可以存储在项目文件中,以便于重复使用和移植。在J-Scope中选择的每个符号都可以单独配置。上下移动图形以更改零基线或更改其分辨率。选择是在图表中显示符号还是仅在监视面板中显示其值。分析收集的数据,滚动可视化图形,放大和缩小或将数据保存到文件中以供进一步分析。J-Scope可以与调试环境并行使用,并扩展IDE的调试体验。J-Scope是Jlink的一个强大的功能,可以在MCU运行时,实时查看全局变量的值,并以图形化显示,就像示波器一样。它是通过SWD接口或者JTAG接口,读取axf文件来选择要显示的变量。
软件准备
要使用J-Scope功能,除了一个JLink V9外,还需要安装J-Flash和J-Scope软件:
使用方法
1. 编写测试代码
while (1)
{
delay_1000us();
icnt += 2;
delay_1000us();
icnt -= 2;
}