|
发表于 2012-3-8 15:18:22
|
显示全部楼层
1. 20X的 CHECKSUM_BY_HARDWARE 没有改完。可以参考107修改。
使用硬件校验时,需要为每一个包添加硬件校验的标致。
点击此处下载 ourdev_724939PML70T.zip(文件大小:25K) (原文件名:stm32f20x_emac_rtt.zip)
2. 使用memcpy会快些,原来的demo没有考虑这个。
3. RT-Thread+LWIP 在 STM32(仅限于内置EMAC)上收发速率可以达到93%。
但一般应用并不是需要这么高的速度,所以一般以稳定为主。
以下是207的netio的TCP测试:
TCP connection established.
Packet size 1k bytes: 8372.03 KByte/s Tx, 4380 Byte/s Rx.
Packet size 2k bytes: 7784.27 KByte/s Tx, 3268.82 KByte/s Rx.
Packet size 4k bytes: 8104.64 KByte/s Tx, 6664.97 KByte/s Rx.
Packet size 8k bytes: 8449.38 KByte/s Tx, 6438.47 KByte/s Rx.
Packet size 16k bytes: 8972.13 KByte/s Tx, 6617.94 KByte/s Rx.
Packet size 32k bytes: 8575.74 KByte/s Tx, 6387.14 KByte/s Rx.
Done.
4. STM32的硬件校验要求原校验值必须为0,因为ICMP_RELPY在回应时,
仅是将数据包的源地址和目标地址交换,所以校验值并不需要完全计算,
仅做一下变换即可,所以LWIP没有提供关闭ICMP的校验方法。
因此,需要在STM32的EMAC驱动中清0 ICMP的校验。
以下是综合测试:
icmp reply speed: 11881 kBytes/s
UDP 32 bytes Rx speed: 520 kBytes/s
UDP 64 bytes Rx speed: 1041 kBytes/s
UDP 128 bytes Rx speed: 2083 kBytes/s
UDP 512 bytes Rx speed: 6250 kBytes/s
UDP 1024 bytes Rx speed: 12500 kBytes/s
UDP 1460 bytes Rx speed: 11881 kBytes/s
UDP 32 bytes Tx speed: 280 kBytes/s
UDP 64 bytes Tx speed: 604 kBytes/s
UDP 128 bytes Tx speed: 1182 kBytes/s
UDP 512 bytes Tx speed: 4240 kBytes/s
UDP 1024 bytes Tx speed: 7683 kBytes/s
UDP 1400 bytes Tx speed: 8847 kBytes/s |
|