「已注销」 2023-08-23 01:05 采纳率: 0%
浏览 14

利用zynq的PS端lwip进行udp通信时出现内存溢出错误怎么解决?

利用zynq7020的PS端lwip进行udp通信时出现内存溢出错误怎么解决?
代码返回:Error on udp send : -1

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-23 04:02
    关注

    【相关推荐】



    • 这篇博客: Zynq-7000基于zynq平台裸跑LWIP协议栈的详解(万字长文)中的 3.2.3 UDP Server 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      UDP服务的创建相比于TCP在理论上简单许多,实现上类似。系统平台设计不需要变更,只需要注意将UDP选项打开即可。建立服务的过程封装成如下的函数:

      int new_udp_connect(){

      struct udp_pcb *pcb;

      ​ err_t err;

      unsigned port = ETH_PORT;

      ​ //创建pcb

      ​ pcb = udp_new();

      if(!pcb)

      ​ {

      ​ xil_printf(“Error creating PCB. Out of Memory\r\n”);

      return -1;

      ​ }

      ​ //绑定端口

      ​ err = udp_bind(pcb,IP_ADDR_ANY,port);

      if(err != ERR_OK)

      ​ xil_printf(“error on udp_connect: %x\n\r”, err);

      ​ //设置接收回调函数

      ​ udp_recv(pcb,(udp_recv_fn)recv_callback_udp,NULL);

      return 0;

      }

      同样是基于回调函数,但是UDP是直接回调接收回调函数,这与TCP略有差异,UDP接收回调函数如下:
      在这里插入图片描述

      回调函数同样是对接收数据进行简单的处理。While(1)循环内部transfer_data_udp()与TCP相同,也可自行实现其他应用程序。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月23日

悬赏问题

  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值