Page 1 of 1

【已解决】【中控】R328_TuyaOS-3.10.7 适配tkl_wired.c后, 崩溃

Posted: 2024年 Jun 20日 17:47
by yeslee

崩溃后堆栈信息如下,详细的log见附件。请查一下lpc_task线程里面可能崩溃的位置。

[New LWP 5357]
--Type <RET> for more, q to quit, c to continue without paging--

Thread 48 "lpc_task" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 5354]
0xb6fbd288 in ?? () from /lib/ld-musl-armhf.so.1
(gdb) bt
#0 0xb6fbd288 in ?? () from /lib/ld-musl-armhf.so.1
#1 0xb6fbd3c0 in __rtnetlink_enumerate () from /lib/ld-musl-armhf.so.1
#2 0x00000000 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)


Re: 【求助】【中控】R328_TuyaOS-3.10.7 适配tkl_wired.c后, 崩溃

Posted: 2024年 Jun 25日 11:41
by luoji

已安排处理


Re: 【求助】【中控】R328_TuyaOS-3.10.7 适配tkl_wired.c后, 崩溃

Posted: 2024年 Jun 26日 10:14
by yeslee

我们这边尝试只编译demo程序,用gdb也只能看到这些堆栈信息,没法得到更详细的崩溃堆栈信息。
目前初步看调用tkl_wired_get_ip获取完ip地址后,就crash了,麻烦检查一下lpc_task线程,尽可能把依赖平台相关的函数调用做到tkl_wired.c里面去。


Re: 【求助】【中控】R328_TuyaOS-3.10.7 适配tkl_wired.c后, 崩溃

Posted: 2024年 Sep 20日 15:10
by lightthgil
c3620765-9fa1-4e04-b437-39eef11997c6.png

c库里面,用了一个8k的局部变量,lpc_task线程堆栈设置的只有4k,导致栈越界

解决方案:删除tkl_thread_create中的pthread_attr_setstacksize(&attr, stack_size);