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

串口,是单片机上一种非常重要的资源。
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

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

暂无评论

发表评论

相关推荐

STM32C8T6+LORA(SX1278)

LoRa通信系统 从毕设开始搭建了一个简单的LORA通信系统(两块STM32C8T6最小单片机系统,两块正点原子的loRa,一块温湿度传感器)构建了一个简单的loRa通信系统作为入门。之