6410开发板的以太网速度仅达到了32Mbps

oncancel 2011-10-20 10:17:04
用的是友坚的6410开发板,使用的是DM9000A, 友坚的bsp,
不知道要修改bsp的什么地方才可以把以太网速度提高到60Mbps以上?
谢谢。
...全文
742 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
九个太阳2023 2013-03-23
  • 打赏
  • 举报
回复
引用 9 楼 oncancel 的回复:
已查明,是wince那一套socket -> TCP/IP -> NDIS -> dm9000机制过于复杂造成的。 我自己重写了dm9000驱动,重写了udp/ip协议栈,速度超过80Mbps
lz牛人,可以分享下经验吗?
oncancel 2012-02-03
  • 打赏
  • 举报
回复
已查明,是wince那一套socket -> TCP/IP -> NDIS -> dm9000机制过于复杂造成的。
我自己重写了dm9000驱动,重写了udp/ip协议栈,速度超过80Mbps
oncancel 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gooogleman 的回复:]
wince的网卡速速 真的是不怎么样。

楼主可以提高网卡中断优先级,试试,线程优先级也提高,试试。
[/Quote]

在应用程序里,把线程优先级设为100,速度没有提高
在应用程序里查看socket的发送缓冲区尺寸,为0x10000,应该是足够大

查看dm9000驱动,调用NdisMRegisterInterrupt()时优先级(CID_IRQ_LEVEL)为0xF,可是查阅msdn,这个参数被Ignored。


此外,我的IRQ_LAN连接在EINT7上,并有
#define SYSINTR_DEVICES 8
...
#define SYSINTR_FIRMWARE (SYSINTR_DEVICES+8)
...
#define SYSINTR_ETH (SYSINTR_FIRMWARE+19) // for DM9000A
...
OALIntrStaticTranslate(SYSINTR_ETH, IRQ_EINT7); // for DM9000A

在调用NdisMRegisterInterrupt()时,irq_number参数为0x23(与SYSINTR_ETH相同),注册表中"IrqNumber"=dword:23 "SysIntr"=dword:23。我不知道这样是不是正确?
oncancel 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gooogleman 的回复:]
wince的网卡速速 真的是不怎么样。

楼主可以提高网卡中断优先级,试试,线程优先级也提高,试试。
[/Quote]

ok 我来试试 这招你用过了没 效果如何?
gooogleman 2011-10-23
  • 打赏
  • 举报
回复
wince的网卡速速 真的是不怎么样。

楼主可以提高网卡中断优先级,试试,线程优先级也提高,试试。
九个太阳2023 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhenghn2010 的回复:]

驱动里的缓存很重要,芯片得到的数据首先要放到这里,这是第一个瓶颈。如果这里面的数据不能及时处理,满了就会丢数据。这个完全是以太网芯片控制的。 至于处理器和应用程序再有多大程度来处理这些数据,看你的系统了。
[/Quote]
LS的能细说下吗?
zhenghn2010 2011-10-20
  • 打赏
  • 举报
回复
驱动里的缓存很重要,芯片得到的数据首先要放到这里,这是第一个瓶颈。如果这里面的数据不能及时处理,满了就会丢数据。这个完全是以太网芯片控制的。 至于处理器和应用程序再有多大程度来处理这些数据,看你的系统了。
oncancel 2011-10-20
  • 打赏
  • 举报
回复
我在应用程序里把缓存已经开得很大了,其它开发板的以太网速度大致达到了什么水平?
zhenghn2010 2011-10-20
  • 打赏
  • 举报
回复
开大缓存 当然如果要考虑处理速度,还要看你芯片的能力和处理的任务量了,不是想提高就提高的

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧