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:
@@ -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>
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user