ZYNQ7020 实现UDP 通信(一)一次传输发送1MB的数据

ZYNQ7020 实现UDP 通信(一)

项目参考
学会Zynq(14)UDP发送Hello World
本文章在上述完整代码基础上实现:
原代码输出——helloworld,一个字符串
本代码输出——1MByte数据,每个数据16位


因为项目需要快速读取PL数据并显示,通过PS-AXI总线读PL,然后用网口输出,(串口传输速度有限)。之前没怎么学过计算机网络,C也是个菜鸡,一步一步来吧。

图(1)UDP输出hello world显示
改变pbuf_alloc申请的数据大小
在这里插入图片描述

在这里插入图片描述
结果是显而易见的;
如果增加申请的空间大小呢?
memcpy函数最大复制数据量是多少?
在这里插入图片描述
0D 归位
0A 换行
00 NULL
00
28 左括号(
9B ???这个搞不懂了,问号应该是3F
00 NULL

这说明申请空间大小要和数据大小严格对应,申请空间不能小于数据长度(就是一部分给砍掉了),也不能大于数据长度(不然就会乱码)。

如果我们把本来应该udp_send的数据先一个个存到ddr里面,有一个num作为计数,然后超过设定值后就把整个数据用udp给读出来,应该是可行的。

---------------------------------分割线 2021.04.03--------------------------------------------
网络发包的一帧的格式如下图所示

在这里插入图片描述
也就是说,先把数据堆进一个字符串数组里面,然后达到计数阈值的时候再输出这个字符串数组里面的内容,比如1024长度的数组,那一次发包就相当于传了1KB的数据出来

在这个经典博客的基础上做了一些修改

学会Zynq(14)UDP发送Hello World

主要改动在main函数和user_udp.c里的udp_printf函数上


	num 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值