GD32 450网络tcp长时间收发后网络ping不通
GD32+freeRTOS+LWIP, 板卡与上位机通过tcp进行数据收发交互,运行大概7、8天左右(出问题的时间比较稳定),网络出现问题。系统一直进网络中断,DMA中断屏蔽寄存器0X101C(偏移地址,下同)值为0x0001 0040查询DMA状态寄存器0x1014的值为0x0868 0484。
此时,若将mac中断屏蔽寄存器0x003c的值置为0x28,则网络恢复正常。
又遇到同样问题的板油吗,这个问题是跟时间戳中断有关系吗,在中断状态寄存器也没有看到时间戳中断啊。 多半是数据指针跑飞了 7 8 天出问题?这时间倒是挺久的。 是不是有内容没有释放?导致内存溢出了? 正常了吗 貌似跟msc中断有关系 这些中断有啥用 可以直接屏蔽吗 昨天晚上又跑死了 没管他 今天上午来了一看 网络又能ping通了 重新把上位机数据跑起来 看看什么时候死 Pretext 发表于 2023-2-10 15:43
如果找不到合适的解决办法,可以大概五六天重启一次单片机。
现在保底的方案就是这么干 朝生 发表于 2023-2-10 15:42
7 8 天出问题?这时间倒是挺久的。
现在单片机发送数据的带宽是4M多,大概7、8天出问题了 ,另外一台设备发送数据带宽是600K ,跑了10天了,还在跑 像是运行久后,内存溢出。 内存溢出了? 数据指针的问题?楼主问题解决了没 应该是MSC中断问题这个计数中断默认是打开的 不用的话就关了 或者发生中断的时候读一下msc状态寄存器清除这个中断 akywong 发表于 2023-2-20 16:49
现在单片机发送数据的带宽是4M多,大概7、8天出问题了 ,另外一台设备发送数据带宽是600K ,跑了10天了, ...
我估计是你有动态内存没有释放。 是不是应该定时发送心跳信号啊 如果不发送心跳信号的话就不能保证连接的通畅 楼主可以开辟一个小数组 记录当断开的时候的相关标识量进行判断 我家里的路由器有时候还总出现这个问题呢如果断电之后上电还能连上 我觉得就可以用 guijial511 发表于 2023-2-20 18:57
像是运行久后,内存溢出。
为什么运行久了之后就会溢出呢 是数据处理的不好吗 guijial511 发表于 2023-2-20 18:57
像是运行久后,内存溢出。
可以通过软件监测数据量然后自行清除冗余数据吗 Pretext 发表于 2023-3-1 14:20
我估计是你有动态内存没有释放。
其实理论上来说应该就是自动释放了 但是就是做不到呢
页:
[1]
2