TLC6655开发板UDP测速 - TMS320C665x - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 440|回复: 5

[未解决] TLC6655开发板UDP测速

[复制链接]

2

主题

5

帖子

1050

积分

金牌会员

Rank: 6Rank: 6

积分
1050
发表于 2019-7-25 14:30:56 | 显示全部楼层 |阅读模式
软件准备:
开发环境:CCS5.5,MCSDK,NDK
导入创龙例程NDK_UDP,参照博文[1]创建socket任务,参照范例[2]编写send_to_PC函数,完成DSP向上位机发送数据程序。
硬件准备:创龙开发板TL6655-EasyEVM-B4
在线进行测试。网口带宽只有12Mbps。

C6655端向上位机发送数据代码如下:
  1. void task_sendto_PC()
  2. {
  3.         struct sockaddr_in sa, sinDst;
  4.         int sa_size1 = 0, err = 0;
  5.         int chain = 0;
  6.         int retSize1 = 0;
  7.         int PktNum = 0;
  8.         int buff_size1 = 0;
  9.         int i = 0;
  10.         //unsigned int unDelay = 0;

  11.         // Allocate the file environment for this task
  12.         fdOpenSession(TaskSelf());

  13.         // initiate socket
  14.         SOCKET s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
  15.         if (s == INVALID_SOCKET)
  16.         {
  17.                 printf("socket failed \n");
  18.                 return;
  19.         }
  20.         // setsocket
  21.         err = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, buff1, 1472);
  22.         err = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, buff1, 1472);

  23.         // initiate address (local)
  24.         bzero(&sa, sizeof(struct sockaddr_in));
  25.         sa.sin_family = AF_INET;
  26.         sa.sin_addr.s_addr = INADDR_ANY;
  27.         sa.sin_port = htons(1000);

  28.         //bind the socket
  29.         err = bind(s, (struct sockaddr *)&sa, sizeof(sa));
  30.         if (err == 0)
  31.         {
  32.                 printf("socket bind successfully");
  33.         }
  34.         else
  35.         {
  36.                 printf("socket-bind failed errnum = %d\n", fdError());
  37.         }

  38.         //initiate address (dst)
  39.         bzero(&sinDst, sizeof(struct sockaddr_in));
  40.         sinDst.sin_family = AF_INET;
  41.         sinDst.sin_addr.s_addr = inet_addr("192.168.2.105");
  42.         sinDst.sin_port = htons(5000);
  43.         sa_size1 = sizeof(struct sockaddr_in);
  44.         buff_size1 = 1472;

  45.         TaskSleep(500);
  46.         buff1[0] = 48;

  47.         while(1)
  48.         {
  49. TaskSleep(1);
  50.                 buff1[1] = i + 48;
  51.                 i++;
  52.                 chain ^= 1;
  53.                 if(chain == 0)
  54.                         memset(buff1, '1', 1024);
  55.                 else
  56.                         memset(buff1, 'A', 1024);

  57.                 retSize1 = sendto(s, buff1, buff_size1, 0, (struct sockaddr *)&sinDst, sa_size1);
  58.                 if (retSize1 < 0)
  59.                         printf("error sending sendto () %d \n", fdError());
  60.                 //else
  61.                         //printf("%d send_size = %d \n", PktNum, retSize1);

  62.                 PktNum++;

  63.                 if(i == 10)
  64.                         i = 0;

  65.         }
复制代码
UDP带宽可以达到24MBps,请问是如何配置的?

我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励0 , 目前已有5人回答

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
最近访问 头像模式 列表模式
回复

使用道具 举报

2

主题

5

帖子

1050

积分

金牌会员

Rank: 6Rank: 6

积分
1050
 楼主| 发表于 2019-7-25 14:32:03 | 显示全部楼层
如果删除TaskSleep(1),则sendto会出现错误,错误码55,为No buffer space available
回复 支持 反对

使用道具 举报

3

主题

363

帖子

1319

积分

广州创龙

Rank: 8Rank: 8

积分
1319
发表于 2019-8-7 17:01:03 | 显示全部楼层
我司有相关测试TCP的测速例程。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

2

主题

5

帖子

1050

积分

金牌会员

Rank: 6Rank: 6

积分
1050
 楼主| 发表于 2019-8-11 16:06:04 | 显示全部楼层
广州创龙莫工 发表于 2019-8-7 17:01
我司有相关测试TCP的测速例程。

好的,谢谢,我会试一下
回复 支持 反对

使用道具 举报

2

主题

5

帖子

1050

积分

金牌会员

Rank: 6Rank: 6

积分
1050
 楼主| 发表于 2019-9-4 16:40:33 | 显示全部楼层
本帖最后由 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
开发板接收速度测试

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

16

主题

43

帖子

1283

积分

金牌会员

Rank: 6Rank: 6

积分
1283
发表于 2019-9-10 11:22:06 | 显示全部楼层

回帖奖励 +1

看一下Platform的选择,还有生成的.map文件,程序是在DDR3还是L2里跑,再就是cache配置
回复 支持 反对

使用道具 举报

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

本版积分规则  回帖提醒

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号-1  

GMT+8, 2019-9-19 02:12 , Processed in 0.068797 second(s), 48 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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