请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1158|回复: 4
收起左侧

[LwIP] F107+DP83848,lwip 1.3,发送数据,运行一段时间之后,数据发送异常

[复制链接]

7

主题

112

回帖

133

积分

初级会员

积分
133
发表于 2021-8-26 10:10:41 | 显示全部楼层 |阅读模式
本帖最后由 596142041 于 2021-8-26 10:13 编辑

用的F107+DP83848,采用lwip,不带操作系统,使用组播,每间隔1s向上位机发送一次数据,运行一段时间之后,无数据输出,但是lwip并未报错,此时设备无法PING通,但是能接受上位机下发的数据;这会是什么原因导致的的啊以下是发送数据的函数,周期的调用UDP_send,通过打印,发现在multicast_send_data中的故障值一直返回的都是ERR_OK.
  1. void UDP_Send(uint8_t *pdata, uint16_t tx_len)
  2. {
  3.    // memcpy(lwip_demo_buf, pdata, tx_len);
  4.     multicast_send_data(pdata, tx_len);
  5. }
  6. /*
  7. *********************************************************************************************************
  8. *    函 数 名:
  9. *    功    能:
  10. *    形    参: 无
  11. *    返 回 值: 无
  12. *********************************************************************************************************
  13. */
  14. void multicast_send_data(unsigned char *data, unsigned short len)
  15. {
  16.     err_t err;
  17.         struct pbuf *Gpbuf =  pbuf_alloc(PBUF_TRANSPORT, len, PBUF_RAM);
  18.     if(Gpbuf == NULL)
  19.     {
  20. #if DEBUG == 1
  21.         printf("pbuf_alloc *p Null\r\n");
  22. #endif
  23.     }
  24.     memcpy(Gpbuf->payload,data,len);//测试数据
  25.     if (udp_server_multi_pcb != NULL)
  26.     {
  27.         err = udp_sendto(udp_server_multi_pcb, Gpbuf, (struct ip_addr *) (&ipgroup_send), UDP_MULTICASE_SEND_PORT);
  28.                 printf("Lwip Tx Data Len = %d,err = %d",len,err);
  29.                 Log_ENTER();
  30.     }
  31.     else
  32.     {
  33.                  printf("udp_server_multi_pcb Null\r\n");
  34.     }
  35.         pbuf_free(Gpbuf);//此处注意,调试出现问题的原因是在此处没有及时未释放该指针
  36. }
复制代码


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2021-8-26 10:49:34 | 显示全部楼层
意思是刚开始是成功的,运行一会就不行了,无法成功发送UDP数据给上位机
回复

使用道具 举报

7

主题

112

回帖

133

积分

初级会员

积分
133
 楼主| 发表于 2021-8-26 10:56:27 | 显示全部楼层
eric2013 发表于 2021-8-26 10:49
意思是刚开始是成功的,运行一会就不行了,无法成功发送UDP数据给上位机

是的,我在自己的开发板上面运行了6小时,都正常,在客户的板子上面测试,运行大概30分钟左右故障就出现
回复

使用道具 举报

2

主题

180

回帖

186

积分

初级会员

积分
186
发表于 2021-8-26 14:21:01 | 显示全部楼层
请使用rtos配合lwip 效果更佳,不需要高速直接默认配置,跑几年都不会有问题
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2021-8-27 09:37:26 | 显示全部楼层
596142041 发表于 2021-8-26 10:56
是的,我在自己的开发板上面运行了6小时,都正常,在客户的板子上面测试,运行大概30分钟左右故障就出现

使用UDP,要增加一个简单的握手机制。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 23:18 , Processed in 0.184269 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表