嵌入式开发者社区
标题: TLC6655开发板UDP测速 [打印本页]
作者: YunxinZ 时间: 2019-7-25 14:30
标题: TLC6655开发板UDP测速
软件准备:
开发环境:CCS5.5,MCSDK,NDK
导入创龙例程NDK_UDP,参照博文[1]创建socket任务,参照范例[2]编写send_to_PC函数,完成DSP向上位机发送数据程序。
硬件准备:创龙开发板TL6655-EasyEVM-B4
在线进行测试。网口带宽只有12Mbps。
[attach]5386[/attach]
C6655端向上位机发送数据代码如下:
- void task_sendto_PC()
- {
- struct sockaddr_in sa, sinDst;
- int sa_size1 = 0, err = 0;
- int chain = 0;
- int retSize1 = 0;
- int PktNum = 0;
- int buff_size1 = 0;
- int i = 0;
- //unsigned int unDelay = 0;
- // Allocate the file environment for this task
- fdOpenSession(TaskSelf());
- // initiate socket
- SOCKET s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- if (s == INVALID_SOCKET)
- {
- printf("socket failed \n");
- return;
- }
- // setsocket
- err = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, buff1, 1472);
- err = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, buff1, 1472);
- // initiate address (local)
- bzero(&sa, sizeof(struct sockaddr_in));
- sa.sin_family = AF_INET;
- sa.sin_addr.s_addr = INADDR_ANY;
- sa.sin_port = htons(1000);
- //bind the socket
- err = bind(s, (struct sockaddr *)&sa, sizeof(sa));
- if (err == 0)
- {
- printf("socket bind successfully");
- }
- else
- {
- printf("socket-bind failed errnum = %d\n", fdError());
- }
- //initiate address (dst)
- bzero(&sinDst, sizeof(struct sockaddr_in));
- sinDst.sin_family = AF_INET;
- sinDst.sin_addr.s_addr = inet_addr("192.168.2.105");
- sinDst.sin_port = htons(5000);
- sa_size1 = sizeof(struct sockaddr_in);
- buff_size1 = 1472;
- TaskSleep(500);
- buff1[0] = 48;
- while(1)
- {
- TaskSleep(1);
- buff1[1] = i + 48;
- i++;
- chain ^= 1;
- if(chain == 0)
- memset(buff1, '1', 1024);
- else
- memset(buff1, 'A', 1024);
- retSize1 = sendto(s, buff1, buff_size1, 0, (struct sockaddr *)&sinDst, sa_size1);
- if (retSize1 < 0)
- printf("error sending sendto () %d \n", fdError());
- //else
- //printf("%d send_size = %d \n", PktNum, retSize1);
- PktNum++;
- if(i == 10)
- i = 0;
- }
复制代码 UDP带宽可以达到24MBps,请问是如何配置的?
作者: YunxinZ 时间: 2019-7-25 14:32
如果删除TaskSleep(1),则sendto会出现错误,错误码55,为No buffer space available
作者: 广州创龙莫工 时间: 2019-8-7 17:01
我司有相关测试TCP的测速例程。
[attach]5421[/attach]
作者: YunxinZ 时间: 2019-8-11 16:06
好的,谢谢,我会试一下
作者: YunxinZ 时间: 2019-9-4 16:40
本帖最后由 YunxinZ 于 2019-9-4 16:42 编辑
已经测试过TCP的速度,一般读写速度在7Mbytes/s左右,偶尔DSP的发送速度可以有12.5Mbytes/s,但并没有到21Mbytes/s。不知道是哪里出了问题。
我希望提高的是UDP的发送速度,之前测试的12Mbps也没有达到TCP的7Mbytes/s,请问问题出在哪里?TCP测速例程中无法查看发送数据的代码,不能对比上面UDP发送数据代码。请问该如何提高UDP的发送速度?E:/Labprojects/DSP6657_project/NDK/开发板接收速度测试.PNG
开发板发送速度测试
E:/Labprojects/DSP6657_project/NDK/开发板发送速度测试.PNG[attach]5572[/attach]
开发板接收速度测试
[attach]5573[/attach]
作者: lide0619 时间: 2019-9-10 11:22
看一下Platform的选择,还有生成的.map文件,程序是在DDR3还是L2里跑,再就是cache配置
作者: 广州创龙莫工 时间: 2020-7-30 14:12
目前66x平台有网络例程更新,测试速率能达到几百Mb/s.
[attach]6418[/attach]
作者: 抹兽记网3tui.cf 时间: 2021-3-15 18:34
看看。。。 北京宾馆监控安装 大兴监控安装 丰台监控安装
北京监控维修 亦庄监控安装 通州监控安装
www.bjanfang.com www.anfang086.com www.bjafang.com
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) |
Powered by Discuz! X3.4 |