lpc4357 单片机没有使用内部的MAC,使用KSZ8851外扩了一个网卡芯片,总线接口为LOCALBUS,没有上RTOS,裸机跑LWIP,使用jperf测试TCP速度,一直稳定在50MBPS左右,
离标称的100M还差一倍的距离,于是我就从多方面着手来提高速度,
首先优化LWIP,修改配置
#define TCP_WND (8*TCP_MSS)//4096
#define TCP_SND_BUF (8*TCP_MSS)//4096
据说这两项配置可以优化TCP的性能。修改过之后,效果不是很明显,总体有改善。
2,优化LOCALBUS总线时序,提高读写KSZ8851的速度,这个优化也有点效果,但不大
3.由于我的LWIP中mem.o memp.o两文件用的RAM是定位在外部SDRAM中,于优化LOCALBUS总线时序,改善访问SDRAM时序。
4,经过以上修改还不能得到显著的提升,于是我把mem.o memp.o定位到LPC4357的内部RAM中,奇迹出现了,iperf测的速度提高了大约20%,能达到60M 左右,但是单片机的内部RAM太小了,后续后很麻烦,于是我又改回到外部SDRAM中,
5,根据第4项的启示,数据存放在SDRAM,KSZ8851也占用LOCALBUS,瓶颈颈应该在这里,于是我想把从KSZ8851读写BUF时改成DMA方式,但是没有成功,有时间再……。
我用的是LPCOPEN库,有的地方修改起来有点麻烦,……