SEGGER RTT打印调试信息之 -——华大MCU

一、安装J-LINK驱动

1.到J-Link官网下载驱动,版本可以最新,但旧版本最好超过6.4。我这用的7.80b版本

2.安装进入到J-Link目录下,小白鼠就好好记得我这2个框文件

..\SEGGER\JLink\Samples\RTT目录下拿出4个必需的驱动文件,(1)Config/SEGGER_RTT_Conf.h (2).\RTT SEGGER_RTT.c SEGGER_RTT.h SEGGER_RTT_printf.c

二、配置Keil5环境

1.把上面的文件夹下的文件都复制到你的工程目录下,如下图

2.在所使用的文件下添加头文件#include "SEGGER_RTT.h"并把相关文件添加进工程目录下,如下图

3.无需初始化添加#include "SEGGER_RTT.h"直接使用SEGGER_RTT_printf(0,"\r\nhello world");

4.编译工程 会发现在RTT驱动文件那报错,跳到该错误下,把头文件的…/…/删掉 留下有用的.h,这里不上图片了,编译通过,然后进行烧录。

三、使用 JLinkRTTViewer.exe(可以直接看目录 四)

结果输出了J-Link连接的信息 没输出调试信息

四、分析驱动 分析原理

看着它的驱动代码,发现它认识我,我不认识它,C语言指针没好好学,惨。凡事总有办法的
上Dbug吧
在SEGGER_RTT_printf那下断点往下跟,来到下图的地方

va_start和SEGGER_RTT_SetTerminal是在内存上面开辟buf的,SEGGER_RTT_vprintf是模仿C的printf输出类型处理并输到buf中

认真分析SEGGER_RTT_SetTerminal 这一条是定义buf的
跳呀跳就找到了这个buf

刚好是我刚说的0-15通道,每个通道都是一个uchar,到此知道打印工具代码块填的地址了

我的代码块地址是**0X1FFF8020

重新填进JLinkRTTViewer.exe

本文教程以及踩坑到此结束END

***下面拓展一下

Specify Target Device 随便选

**重要的是代码块地址(0X1FFF8020)  
这是我的,你的Address自己去Dbug
附加 **_SEGGER_RTT** 自己看地址

还需要注意MCU RAM大小,如果RAM空间不够,也是不能打印信息的


填对代码块地址 通杀所以SWD的芯片,终于可以原理串狗(串口)这坑货了,省事了

转载:(J-Link RTT)华大F460 SEGGER RTT打印输入输出调试信息_华大 rtt-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值