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,如下图。
在这里插入图片描述

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值