fix(stack): 增大Lora/LoraIRQ线程栈至2048并启用栈溢出检测

0x0020类型设备数据含float字段,DebugDisplaySensorData中%06f格式
触发ARMCC完整FP printf路径(vsprintf->_printf_fp_dec->btod),仅此调用链
需~1252B栈空间,而Lora线程栈仅1024B导致栈溢出踩踏堆中定时器链表节点,
rt_list_remove在_rt_timer_remove中崩溃.增大栈至2048并启用
RT_USING_OVERFLOW_CHECK提前检测溢出.
This commit is contained in:
2026-09-18 17:38:55 +08:00
parent e23a0d01ae
commit 2cf17c4387
3 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -41,7 +41,7 @@
#define RT_DEBUG_INIT 0
// <c1>thread stack over flow detect
// <i> Diable Thread stack over flow detect
//#define RT_USING_OVERFLOW_CHECK
#define RT_USING_OVERFLOW_CHECK
// </c>
// </h>
+1 -1
View File
@@ -92,7 +92,7 @@ void Lora_Thread_Entry(void *parameter)
Debug_Printf("CatOneIRQ Sem Create Failed!\r\n");
}
LoraIRQ_Thread = rt_thread_create("LoraIRQ", LoraIRQ_Thread_Entry, NULL, 1024, 3, 20);
LoraIRQ_Thread = rt_thread_create("LoraIRQ", LoraIRQ_Thread_Entry, NULL, 2048, 3, 20);
if (LoraIRQ_Thread != RT_NULL)
rt_thread_startup(LoraIRQ_Thread);
+1 -1
View File
@@ -397,7 +397,7 @@ int main(void)
else
return -1;
Lora_Thread = rt_thread_create("Lora", Lora_Thread_Entry, &GateWay, 1024, 3, 20);
Lora_Thread = rt_thread_create("Lora", Lora_Thread_Entry, &GateWay, 2048, 3, 20);
if (Lora_Thread != RT_NULL)
rt_thread_startup(Lora_Thread);
else