完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
俺已经将RT-Thread 1.0.0bsplm3s9b9xdriversboard.h中的LM3S_EXT_SRAM配置为0(不使用外部的SDRAM)
|
|
|
|
你的配置是关键
|
|
|
|
怎样配置???
俺用的0.3.3版本用的是默认配置,除了IP地址外,没有修改rtconfig.h的任何参数。 所以,测试1.0.0版本的时候,同样使用默认配置,只修改rtconfig.h中定义的IP地址。 都使用默认配置,速率相差这么大,是不是底层驱动的问题???或者是lwip移植的问题??? |
|
|
|
怎样配置???
俺用的0.3.3版本用的是默认配置,除了IP地址外,没有修改rtconfig.h的任何参数。 所以,测试1.0.0版本的时候,同样使用默认配置,只修改rtconfig.h中定义的IP地址。 都使用默认配置,速率相差这么大,是不是底层驱动的问题???或者是lwip移植的问题??? |
|
|
|
|
|
|
|
看来不是配置的问题。详细描述如下:
今天又试了一下1.0.0版本的lm3s8962分支的NETIO测试,和lm3s9b9x分支的NETIO测试结果对比如下,可以看出,lm3s8962分支的速率要快很多: 为什么说不是配置的问题呢? 要调整配置,改善LWIP的速率,有两个文件需要配置:rtconfig.h和lwipopts.h。 而rtconfig.h文件对LWIP速率的影响,只有两个参数:RT_LWIP_TCP_SND_BUF和RT_LWIP_TCP_WND,对比1.0.0版本的lm3s8962分支和lm3s9b9x分支的这两个参数,发现完全相同,都是8192。 而lwipopts.h文件,对于1.0.0版本的lm3s8962分支和lm3s9b9x分支,都是使用完全相同的文件,即RT-Thread 1.0.0components etlwipsrclwipopts.h,文件相同,所以,不存在配置上的差异。 从上面的1.0.0版本的lm3s8962分支和lm3s9b9x分支的NETIO测试结果对比来看,lm3s8962分支的速率要快很多,又因为配置相同,所以,排除配置问题。那不是配置问题,就可能是另外的两个问题:底层驱动和LWIP的移植。 再来对比一下1.0.0版本的lm3s8962分支和lm3s9b9x分支的底层驱动,都是位于相应分支下的driversluminaryif.c和driversluminaryif.h文件中,对比1.0.0版本的lm3s8962分支和lm3s9b9x分支的luminaryif.c和luminaryif.h文件,发现没有什么不同。所以,有排除了底层驱动的问题。 至于LWIP的移植问题,小弟才接触RT-THREAD,没有资格评论。 望高手解答 |
|
|
|
如果是这样,可能还是驱动吧。
因为你使用的都是1.0.0,所以lwip的移植是相同的。驱动代码是相同的,也许9B92上需要额外考虑一些东西?!这个应该是唯一的差别 对了,你看看你的9B92晶振配置是否与发布版相同,如果不同会造成systick精度有问题,相应的影响到lwip的速度。 |
|
|
|
俺的LM3S9B92开发板的晶振为16MHz,和RT-Thread 1.0.0splm3s9b9xdriversoard.c文件中的rt_hw_board_init()函数中的代码
SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); 中的晶振SYSCTL_XTAL_16MHZ一致。 如果不一致,肯定会影响串口的波特率,俺在使用putty的时候就会发现。 |
|
|
|
找到问题了 还是bernard大侠说的对 还是配置的问题 如下:
1.0.0版本的lm3s8962的rtconfig.h文件如下(注意:没有定义RT_LWIP_TCP_WND): #define RT_LWIP_TCP_SND_BUF 1024*8 1.0.0版本的lm3s9b9x的rtconfig.h文件如下(注意:定义了RT_LWIP_TCP_WND): /* TCP sender buffer space */ #define RT_LWIP_TCP_SND_BUF 8192 /* TCP receive window. */ #define RT_LWIP_TCP_WND 8192 将上面的1.0.0版本的lm3s9b9x的rtconfig.h文件的#define RT_LWIP_TCP_WND 8192注释掉即可 下面是注释掉以后,1.0.0版本的lm3s9b9x的NETIO测试结果,如下: RT_LWIP_TCP_WND会影响RT-Thread 1.0.0components etlwipsrclwipopts.h文件中的TCP_WND常量的值, 如果定义了RT_LWIP_TCP_WND,则TCP_WND等于RT_LWIP_TCP_WND(也就是8192) 如果没有定义RT_LWIP_TCP_WND,则TCP_WND等于1460*2 想问一下各位高手,将TCP_WND配置为8192和将TCP_WND配置为1460*2,为什么性能差这么多??? |
|
|
|
这是编译器优化以后的1.0.0版本的LM3S9B9X分支的NETIO测试结果:
从测试结果来看,的确1.0.0版本的性能比0.3.3版本提升很多。 好了,接下来开始测试稳定性了。从今天开始不断电连续运行NETIO测试和PING测试。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
754 浏览 0 评论
3703 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2459 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2892 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
31079 浏览 11 评论
72753 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 09:32 , Processed in 0.884964 second(s), Total 90, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号