bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
阅读:2725回复:29

三星arm9网络发送数据的问题

楼主#
更多 发布于:2005-04-11 16:11
在三星arm9板子上通过网络发送数据,是用socket创建的一个套接字,我发现了一个奇怪的问题:
send的速度时快时慢,慢的时候可以达到五六百毫秒,才4k的数据,我的程序只是负责发送数据,在另一台计算机上接收数据,没做其他额外的事,不知是什么地方影响了他?哪位大虾知道这是为什么呢?

还有我想用异步套接字来发送数据,第六个参数该如何设置
WSASend(clientfd,&wsabuf,1,&numbysend,0,NULL,NULL);

下面是我发送部分的代码和测试的速度:
while(1)
{
     onesendnum=0;
     offset=0;
stemp=&recvbuf[84];
allcount=5530*4;
time1=GetTickCount();
while(allcount>0)
{
if(allcount>=1024*4) onesendnum=1024*4;
else onesendnum=allcount; sdnum=send(clientfd,stemp+offset,onesendnum,0);
if(sdnum<=0)
{
clientfd=-1;
RETAILMSG(1,(TEXT(\"send data to remotecontrol error...\\r\\n\")));
return 0;
}
offset+=sdnum;
allcount-=sdnum;
          }
time2=GetTickCount();
RETAILMSG(1,(TEXT(\"send data time=%d,sdnum=%d\\r\\n\"),(time2-time1),sdnum));
}

测试的时间
send data time=19
send data time=21
send data time=23
send data time=26
send data time=521
send data time=495
send data time=509
send data time=27
send data time=23
send data time=23
send data time=27
send data time=26
send data time=26
send data time=22
send data time=25
send data time=24
send data time=26
send data time=625
send data time=23
send data time=582
send data time=26
send data time=23
send data time=27
send data time=368
send data time=497
send data time=611
send data time=27
send data time=23
send data time=23
send data time=27
send data time=26
send data time=26
send data time=22
send data time=24
send data time=25
send data time=26
send data time=726
send data time=23
send data time=730
send data time=26
send data time=27
send data time=23
send data time=27
send data time=423
send data time=599
send data time=25,
send data time=27,
send data time=23
send data time=23
send data time=26
send data time=26
send data time=25
send data time=22
send data time=25
send data time=24
send data time=26
send data time=505
send data time=23
send data time=614
send data time=26
send data time=27
send data time=23
send data time=26
send data time=336
send data time=497
send data time=25
send data time=28
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-11 17:05
你的网卡用的VMINI共享模式?这样可能会时快时慢。

用异步方式我觉得可能是这样:


异步方式使用第六个参数,指定一个LPWSAOVERLAPPED lpOverLapped = xxxx;

在使用前lpOverLapped->hEvent = CreateEvent();

然后waitforsingleobject(lpOverLapped->hEvent)。

我猜的哈,没试过,错了我认错:)))

根据地的兄弟们,团结就是力量
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-11 20:39
没注意过,那VMINI共享模式有什么特殊的作用吗,怎么修改它的模式呢
薄荷的滋味
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-12 09:31
VMINI共享模式是不是和这个变量有关系IMGSHAREETH,而且ce起来后,只有一个网卡标志,我记得在x86下面有两个,包括一个虚拟网卡,是不是说明它是VMINI共享模式,那应该怎么设置呢,查看帮助,设置了几个环境变量可不起作用?我现在该怎么办呢,上面催的可厉害了,大虾快来帮帮我!!!!
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-12 15:01
....你的东西不是好好的嘛,你的问题是什么???

如果要使用vmini

set imgshareeth=1
根据地的兄弟们,团结就是力量
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-12 17:46
....你的东西不是好好的嘛,你的问题是什么???

如果要使用vmini

set imgshareeth=1

网速忽快忽慢,慢时传送4k的数据有五六百毫秒,根本达不到我们的要求,不知道什么地方影响它.正常情况下不应该是这样的,而我程序也没有额外的开销.
现在我的内核是通过网络下载的,但没有设置内核调试选项.
想问下,vmini模式是不是下载调试和应用程序使用网络通信共用同一个网卡?
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-12 19:18
是的
这种方式网卡被kitl和应用共享,去掉kitl应该就没有问题了
根据地的兄弟们,团结就是力量
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-12 20:33
是的
这种方式网卡被kitl和应用共享,去掉kitl应该就没有问题了

我好像没有设置成共享模式,这种模式是不是就是在platform\\setting里设置的?
薄荷的滋味
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-04-13 12:47
在IDE配置下载的选项中,去掉kitl,下载完之后内核起不来,是不是要修改eboot的程序呀?应该怎么样设置呢,期待中!!!!!!!!!
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-04-13 16:44
...单独去掉kitl是不行啊。kerneldebugger也要去掉。
并且不能通过网卡下载os image了,你如果要单独地跑,需要自己烧写flash,然后从本地启动。(当然,如果kitl使用了其他的物理通道这些就都可以保留,只要kitl不用网卡,网卡就可以单独使用)

要做的工作有点儿多,慢慢来。
根据地的兄弟们,团结就是力量
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-04-13 19:49
...单独去掉kitl是不行啊。kerneldebugger也要去掉。
并且不能通过网卡下载os image了,你如果要单独地跑,需要自己烧写flash,然后从本地启动。(当然,如果kitl使用了其他的物理通道这些就都可以保留,只要kitl不用网卡,网卡就可以单独使用)

要做的工作有点儿多,慢慢来。

大哥,看了帮助知道kitl是什么意思,其实我没有设置kerneldebugger,kitl也设置成通过串口的拉也是不行的,网卡只是下载os image,速度也是忽慢忽快的.

为什么不能通过网卡下载os image?

你说会不会是网卡驱动的问题,应用程序我试了各种方法都还是一样的.
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-04-14 13:56
:)kernel debugger不是设的,而是去的:))

set imgnodebugger=1

首先认个错,不是不能用网卡下:))

我说的不能共享是指在os image里面,不是在boot loader里面,你看看你的oeminit里面是不是让kitl用的网卡。

如果你的网卡用来下载os image的时候都忽快忽慢的话,看看网卡的帮助,对mtu什么的有没有什么说明。还有看看getframe和sendframe函数的实现,有没有什么地方有点儿不妥。

根据地的兄弟们,团结就是力量
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-04-14 20:18
呵呵,上面我也写错了句话,kitl也设置成通过串口的,网卡只是下载os image,在这种配置下网络发送数据速度也是忽慢忽快的,而不是下载内核时速度忽快忽慢.
把网卡设置成vmini模式,是哪几个内核文件啊?
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-04-15 10:38
那基本可以肯定收发包的动作没什么问题,不过网卡驱动你还是要再看看。你只要不把kitl架在网卡上就没有共享的问题
根据地的兄弟们,团结就是力量
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-04-18 12:53
wxl_50685330大哥,我把通过网卡调试的部分合kitl的初始化都去掉了,结果还是那样,难不成真的是网卡驱动的问题?
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-04-19 14:06
嗯,可能性都有。

因为DEBUG BUILD的时候有很多调试信息和附加功能(比如驱动时间测试,内核调试器等等),这些东西不知道你去干净没有,这些对速度会有影响。

不过我觉得你还是首先检查你做的部分:
1.你的局域网负载情况怎么样?先排除网络问题;
2.驱动中有无不合理的部分,我建议你看看你的网卡芯片的一些注意事项说明,有的网卡的MTU做的不太对,还有内部寄存器的设置看有无不妥(比如网卡时钟设对了吗);
3.如果一切都没什么的话,你可以在你的驱动中收发包的函数里面测试一下时间(前后用GetTickCount后相减),看看抖动出现在你的收发函数里面,还是出现在MINIPORT和NDIS的衔接上面;
根据地的兄弟们,团结就是力量
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-04-19 20:29
网络是点对点的,肯定没有问题
剩下的两个我再仔细看看,希望能找出问题来.

另外我注意到一个问题,下载内核时他的速度也不是很快,只有230K/s左右,这个会不会说明网卡设置有问题
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-04-20 11:35
这个速度也属正常,跟你操作芯片有关,你看看mac控制器里面有没有提速位,我记得cs8900是有的
根据地的兄弟们,团结就是力量
bohezhou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-08
  • 最后登录2007-06-14
  • 粉丝0
  • 关注0
  • 积分240分
  • 威望27点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-04-26 20:28
老大,在哪个文件里修改呢?好难找
薄荷的滋味
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2005-04-27 14:14
....你说改什么难找啊???找到要改的东西了?网卡驱动在你的BSP里面啊
根据地的兄弟们,团结就是力量
上一页
游客

返回顶部