RTX5使用RTT输出按键信息后死机
本帖最后由 flying1104 于 2021-10-14 14:02 编辑系统:RTX5MCU:STM32H743
工具:JLINK
硬件:V9.70
dll:V6.96
背景:
以前使用串口调试,现在开始想转用RTT调试
移植版本:
RTX5:V7-RTX5 Template
RTT:专题5下面的H7版本,RTT version: 7.00
配置:
RTT采用默认专题5的配置
#define rttTerminal SEGGER_RTT_SetTerminal
#define rttPrintf SEGGER_RTT_printf
1.在AppTaskStart任务下,配置了RTT上行和下行
/* 配置通道 0,上行配置*/
SEGGER_RTT_ConfigUpBuffer(0, "RTTUP", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
/* 配置通道 0,下行配置*/
SEGGER_RTT_ConfigDownBuffer(0, "RTTDOWN", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
实现:
能够在AppTaskStart 打印出版本号
rttTerminal(0);
rttPrintf(0, "V1.0.0\r\n");
问题:
按下按键1,打印
rttPrintf(0, "KEY_DOWN_K1\r\n");
按下按键2,打印
rttPrintf(0, "KEY_DOWN_K2\r\n");
现象:
按下按键1或者按键2后,RTT能够输出打印信息
但MCU死机,LED不闪烁。
更换使用串口输出,MCU程序运作正常
在STM32F407上面一样的操作,没有问题,RTT version: 6.70a
不知道怎么追踪代码,因此请问这个是哪里造成的呢?
感谢
本帖最后由 flying1104 于 2021-10-14 15:05 编辑
初步定位因为这个函数跳入硬件错误
if (BufferDesc.Cnt != 0u) {
SEGGER_RTT_Write(BufferIndex, acBuffer, BufferDesc.Cnt);
}
已经解决,RTT版本问题 不好意思,回复晚了。
解决了就好。 eric2013 发表于 2021-10-15 09:14
不好意思,回复晚了。
解决了就好。
感谢回复,主要开始没找到头绪,没调试过系统和使用RTT调试,不熟悉调试工具,想要指引一下。
后来怀疑是不是JLINK和RTT版本不对造成的冲突
用了JLINK的软件版本RTT就没有问题了
页:
[1]