单片机编译环境调试——IAR环境通过J-LINK的驱动SEGGER_RTT 调试
前言:
最近收到一个项目的工程,看了几天发现代码写的很烂,所以进入了调试模式。这对于我二年都不用J-LINK都人来说简直觉得很麻烦,之前我设计好的程序都忙写,写完一试就好用。这下到好,麻烦也得硬调啊,数据量大,还不能串口打印,我调着调着发现代码里有个LOG("\n\rUart1@ Tx : ");这引起了我的好奇,经过一番研究发现这个调试方法还不错,下面详细介绍一下:
1、Segger_RTT介绍
RTT的全称是实时传输(Real Time Transmit),是Segger公司推出的,搭配Jlink使用的调试手段。
2. 使用说明
安装JLink驱动后,可在安装目录 SEGGER\JLink_V760\Samples\RTT 找到RTT源码,添加到安装工程中就可以使用。(我安装的是JLink_V760版本)
或者到官网下载SEGGER_RTT组件,下载地址:https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/#j-link-rtt-client
3、添加到工程后
4、代码调用
在初始化阶段调用SEGGER_RTT_Init();
定义SEGGER_RTT_printf的宏定义,或者在需要调试的位置直接调用SEGGER_RTT_printf即可
5、调试界面使用
先用IAR环境,用J-LINK连接好单片机,进入调试
打开J-LINK RTT Client V7.60、打开J-LINK RTT Logger V7.60这两个工具
打开后,client是没什么反应的,logger的界面如下图,虚线下面第一行是自动识别出来的单片机型号,这里我用的是GD32
第一行的设备name我们默认点回车就可以了
接下来弹出第二行,也默认回车
接下来的几行也都默认回车即可
连接成功显示下图
都回车完运行程序,程序运行到加入打印调试的地方就会打印出你加入调试的字符串了,如下图是我加的打印
这时候Loger的窗口就自动就关闭了,程序调试结束后Client窗口会弹出connention lost ,再用IAR调试就自动连上会提示Connented了