天线|RF射频
直播中

谢芳芳

7年用户 138经验值
私信 关注
[问答]

裸机LWIP进入HardFault_Handler后返回不了

STM32F107,移植LWIP1.4.1 ,  DM9161,    UDP TCP能正常通信,这个程序知识开启一个UDP通信,每五秒发送一次心跳(时间包),同时接收PC端的指令,做相应的处理后,回复应答。
问题:
我在连续发送指令后,(即不管有没有接收到应答,都在发送命令,PC上位机有超时重传设置,就是连续发送几次。)出现死机的情况,代码进入HardFault_Handler函数。
(1)我用了他们讲的办法放回BX LR,但是返回不了。无法定位具体地方。
(2)不知道是不是堆栈溢出,所以在发送的函数里把去全部的比较大局部变量全部改成全局变量。还是会出现问题。
会不会是发送和接收函数有问题,请高手看看:(基本参考原子的代码)

回帖(4)

李珏

2019-7-2 09:55:40
不是一发送就出问题,要经过不断点击上位机不同的命令,发送好多次以后出现这个问题。相当于压力测试吧。(防止客户各种随意的操作出问题)
举报

文汝寒

2019-7-2 10:14:06
这样···
举报

h1654155275.5614

2019-7-2 10:20:48
串口打印
举报

李剑

2019-7-2 10:28:07
已经解决,局部变量定义了一个u8 buff[60],
memset(buff,0,64);导致出错。
属于内存溢出,栈地址出错
举报

更多回帖

发帖
×
20
完善资料,
赚取积分