Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
中断
调试
在RT-Thread中使用segger RTT调试中断
发布于 2022-02-19 18:07:08 浏览:1391
订阅该版
最近在调试RT-Thread的中断功能。 一般调试中断功能都是用IO口去测试的,不能用打印,特别是rt_kprintf()的方式去调试。 原因很简单,因为rt_kprintf()的发送是阻塞型的,会占用大量的时间。 中断功能最忌讳的就是占用时间太长。 最近调试发现,对于常用的STM32来说,有一个不占用时间的打印,那就是:segger RTT。 Segger RTT的说明和原理看看下图: ![在这里插入图片描述](https://oss-club.rt-thread.org/uploads/20220714/4ae30a7f2e61b3e806363e0cbe35ec413ad960cd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNDcxMzIzODQ=,size_20,color_FFFFFF,t_70,g_se,x_16) 别人说可以,那么就要亲自试试。 首先是引入segger RTT。 对于RT-Thread来说,引入segger RTT非常简单,因为有一个人做了一个软件包。 ![在这里插入图片描述](https://oss-club.rt-thread.org/uploads/20220714/f6ce1336b4450284d178f6bb1e9e39d67020e95e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNDcxMzIzODQ=,size_20,color_FFFFFF,t_70,g_se,x_16) 可以参考我的另外一篇文章: [rt-thread使用segger_rtt打印,节约串口](https://blog.csdn.net/m0_47132384/article/details/122397129?spm=1001.2014.3001.5501) 但是这次重点不一样,之前是希望替代MSH的串口。现在是想调试中断。 所以,使用方法稍微修改一下。 ![在这里插入图片描述](https://oss-club.rt-thread.org/uploads/20220714/962f2f262118a28491dba09c798d864a4c75c85d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNDcxMzIzODQ=,size_20,color_FFFFFF,t_70,g_se,x_16) 初始化一样的,但是RT_CONSOLE_DEVICE_NAME不需要切换成jlinkRtt了。 使用前先准备一下: ![在这里插入图片描述](https://oss-club.rt-thread.org/uploads/20220714/76395a65c79f611b0084447bc2ca46ce0064ff33.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNDcxMzIzODQ=,size_20,color_FFFFFF,t_70,g_se,x_16) 想打印的话就: ![在这里插入图片描述](https://oss-club.rt-thread.org/uploads/20220714/b6e7d1bc7bb6699d16c8237f2a2f509efbf614cb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNDcxMzIzODQ=,size_20,color_FFFFFF,t_70,g_se,x_16) 用rt_device_write()去打印。图里打印了差不多50BYTE了,一般打印够用了。 我这是PWM中断,然后翻转测试脚。 先用viewer看看效果: ![在这里插入图片描述](https://oss-club.rt-thread.org/uploads/20220714/08c4e1b711b39d7d36c80cc19d6211eb4aba58e1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNDcxMzIzODQ=,size_20,color_FFFFFF,t_70,g_se,x_16) 然后用示波器看看 ![在这里插入图片描述](https://oss-club.rt-thread.org/uploads/20220714/b152acbd194f568ad4850ed1b410d7cdaeddd3fd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNDcxMzIzODQ=,size_20,color_FFFFFF,t_70,g_se,x_16) 黄色线是IO翻转的波形 蓝色线是PWM输出脚 频繁的打印并没有让波形有明显的变化。 所以验证了,中断时,可以用segger RTT去打印一些信息。
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
diskwu
这家伙很懒,什么也没写!
文章
5
回答
8
被采纳
3
关注TA
发私信
相关文章
1
使用CmBacktrace定位错误异常,请教分析原因
2
ARM9、raspberry-pi中断问题
3
内联函数不压栈,会因为中断导致栈内现场被破坏吗
4
rt_hw_context_switch_interrupt的逻辑
5
中断的入口程序在哪个文件里?
6
我想实现一个定时器中断,发现rt_hw_interrupt_install未定义
7
临界区和关中断,是否需要同时使用?
8
gpio 引脚一直进中断,请问怎么办呢?
9
RT-Thread那些API可以在中断程序中调用?
10
spi dma 中断接收的问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
7
个答案
2
次被采纳
三世执戟
7
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
winfeng
2
个答案
1
次被采纳
chenyaxing
2
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部