rt-thread使用segger_rtt打印,节约串口

串口,是单片机上一种非常重要的资源。
rt-thread的finsh功能(就是msh了)是非常重要的调试打印接口。

rt-thread默认使用一个串口去实现finsh的功能,然而实际产品设计的时候,串口往往不够用。
或者,有时候想调试时,发现没有带TTL或者RS232接线。

其实,很多片子,自带了一个速度达到M级别,又不占用MCU资源的端口,那就是SEGGER的RTT接口。简单点说,就是jLink的烧录口。只要你带了烧录器,就可以调试。

要用JLINK的RTT去实现finsh的输入输出,其实很简单,就下面三步:

1,添加SEGGER_RTT软件包。

在rt-thread setting里,添加软件包,搜索segger就可以了,很容易找。
在这里插入图片描述
###2,初始化jlink rtt
jlink rtt使用前需要初始化的,软件包作者已经封装好了函数:int rt_hw_jlink_rtt_init(void);
在这里插入图片描述
(这里吐槽一句,作者没写return,留了一个warning)
然后需要在配置console的device之前,初始化jlink rtt。
比如,下面就是一个新建项目的添加地方。在board.c的rt_hw_board_init()函数里。
在这里插入图片描述
###3,配置console使用的设备
修改rtconfig.h,需要手动了。把RT_CONSOLE_DEVICE_NAME使用jlinkRtt
#define RT_CONSOLE_DEVICE_NAME “jlinkRtt”
如下图:
在这里插入图片描述

看看效果

用jlink rtt viewer就能看到运行效果:
比一般的打印多了一句SEGGER_RTT ADDRESS的内容,可以无视。
在这里插入图片描述
可以看到新建立工程的hello rt-thread一直在打印。
再试试输入,没有问题。
在这里插入图片描述
之后,就可以愉快的使用MSH的功能了!

最后写两点注意问题。

有时候,打印消息不全,那是因为消息太长了,要修改下面BUFFER_SIZE_UP这个宏。
位置在package -> SEGGER_RTT -> RTT-> SEGGER_RTT_Conf.h里
在这里插入图片描述
jlink rtt viewer具体操作自行百度,这里提一句关键的:修改Input,如下图。
在这里插入图片描述

版权声明:本文为CSDN博主「m0_47132384」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_47132384/article/details/122397129

生成海报
点赞 0

m0_47132384

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

嵌入式系统原理及应用(复习总结)

第一章 嵌入式系统概论 嵌入式系统的定义: 以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 可以从以下几个方面

Arduino零基础实践——1

一:资源层 1.1硬件:Arduino各种开发板,我常用的是Nano,因为比较小而且便宜,某宝上20-30块。还有Arduino的拓展板卡,就是在后面连接外设

无刷直流(BLDC)电机的原理及正确的使用方法

当工程师想利用电气、电子的机器在现实世界中做些什么时,他们会思考怎样才能将电信号变为“力”?将电信号转换为力的就是传动器,即电机。可以将电机视作“将电气转换为机械的力的元件”。 最基本的电机是 “DC电机(有刷电机)”。在磁场中放置线