eric2013 发表于 2023-4-15 02:56:00

RTT的函数SEGGER_RTT_printf需要较大的栈空间,如果大家移植RTT开辟的空间不足会硬件异常

SEGGER_RTT_printf会调用下面函数:



局部变量大小是由SEGGER_RTT_Conf.h文件决定:

#ifndef   SEGGER_RTT_PRINTF_BUFFER_SIZE
#define SEGGER_RTT_PRINTF_BUFFER_SIZE             (1024u)    // Size of buffer for RTT printf to bulk-send chars via RTT   (Default: 64)
#endif

如果大家开辟的空间不足会导致硬件异常:






gwnpeter 发表于 2023-6-30 12:16:40

我一般都是把这里改为静态变量,函数变成不可重入,但是影响很小。同时我release模式是不使用rtt的,发布之后就更加没有影响了

eric2013 发表于 2023-7-1 01:12:06

gwnpeter 发表于 2023-6-30 12:16
我一般都是把这里改为静态变量,函数变成不可重入,但是影响很小。同时我release模式是不使用rtt的,发布之 ...

主是RAM容量比小的芯片容易在这个地方出问题了,
页: [1]
查看完整版本: RTT的函数SEGGER_RTT_printf需要较大的栈空间,如果大家移植RTT开辟的空间不足会硬件异常