Re: lwip 1.3.1 testing

Sergei Gavrikov <[email protected]>
Newsgroups gmane.os.ecos.devel
Message-ID <[email protected]>
On Fri, Aug 21, 2009 at 09:43:36PM +0300, Sergei Gavrikov wrote:
> On Fri, Aug 21, 2009 at 09:12:02AM +0200, Simon Kallweit wrote:
> > Hi
> >
> > If anyone volunteers, I'd be glad if you could test the current state of  
> > the lwip 1.3.1 port. It has been updated with the latest changes from  
> > the 1.3.1 release. I currently left in my changes for SLIP and PPP (see  
> > my last mail for details), but this should not matter for testing. The  
> > package can be installed by just replacing the existing lwip and eth  
> > drivers packages.
> >
> > http://download.westlicht.ch/lwip-20090821.tar.gz
> 
> Hi Simon,
> 
> I need a bit clarification from you. Does it mean that we should try
> 'lwip_eth' template only on real HW? I stub on 'left in' phrase. Did
> your SLIP/PPP hack leave this tarball? Does it mean what tests of SLIP,
> for example, will be useless just now?

Hi Simon,

Last weekend I tested a bit your lwip 1.3.1 port. Well, that was not any
stress test, just compile and run a few net tests out from the box and
pinging. Short summary the below

  Synth			  ARM-7 (LE)
+ http_simple		+ http_simple
+ http_sequential	+ http_sequntial
+ tcpecho		+ tcpecho

External ping/arping worked for both targets. For the tests I used
configs with DHCP support.

For the followers I attach the ecos minimal configs which I used for
simple and sequential modes for synth and real hardware and a small
patch for simple.c, sequential.c. All build were started as

ecosconfig new <target> lwip_eth

I had got `stack overlow' in GDB with default stack's settings on real
target when I enabled a tracing and turned off optimization, I tried
multipy stack amounts (for interrupts, tcp_thread, eth_thread) x 2, x 4,
but error did not go away.  Perhaps, I should investigate more time for
the issue, but may be in the next weekend.

Thanks for the port!

Regards
Sergei

Appendix

Host and tools details
----------------------
Host		Ubuntu 8.04.3 LTS
eCos		CVS updated + lwIP 1.3.1 package
ecosconfig	3.net (Aug 23 2009 17:00:44)
dhcpd3		V3.0.6

Synth target details
--------------------
GCC		4.2.4
GDB		GNU gdb 6.8-debian
CFLAGS		-g -O2

ARM target details
------------------
BOARD		Olimex LPC-E2294 rev. B
NIC		DAVICOM DM900 32-bits
STARTUP		RAM
ROM monitor	RedBoot+GDB stubs
GCC		arm-eabi-gcc 4.3.2
CFLAGS		-g -O2
lwip.patch (text/x-diff, 1.8 KB)
diff -r c04951f2b777 net/lwip_tcpip/current/src/ecos/sequential.c
--- a/net/lwip_tcpip/current/src/ecos/sequential.c	Fri Aug 21 20:43:16 2009 +0300
+++ b/net/lwip_tcpip/current/src/ecos/sequential.c	Mon Aug 24 17:27:13 2009 +0300
@@ -75,6 +75,10 @@
 #include <cyg/infra/diag.h>
 #include <cyg/kernel/kapi.h>
 
+#ifdef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+#include <cyg/hal/hal_if.h>            // HAL_CTRLC_CHECK
+#endif
+
 #ifdef CYGPKG_LWIP_ETH
 #include <cyg/io/eth/eth_drv.h>
 #include <cyg/io/eth/netdev.h>
@@ -227,7 +231,7 @@
 #endif
                 sc->state &= ~ETH_DRV_NEEDS_DELIVERY;
 #if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT)
-                was_ctrlc_int = HAL_CTRLC_CHECK(*sc->funs->int_vector(sc),
+                was_ctrlc_int = HAL_CTRLC_CHECK(sc->funs->int_vector(sc),
                                                 (int) sc);
                 if (!was_ctrlc_int) // Fall through and run normal code
 #endif
diff -r c04951f2b777 net/lwip_tcpip/current/src/ecos/simple.c
--- a/net/lwip_tcpip/current/src/ecos/simple.c	Fri Aug 21 20:43:16 2009 +0300
+++ b/net/lwip_tcpip/current/src/ecos/simple.c	Mon Aug 24 17:27:13 2009 +0300
@@ -76,6 +76,10 @@
 #include <cyg/infra/diag.h>
 #include <cyg/kernel/kapi.h>
 
+#ifdef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+#include <cyg/hal/hal_if.h>            // HAL_CTRLC_CHECK
+#endif
+
 #ifdef CYGPKG_LWIP_ETH
 #include <cyg/io/eth/eth_drv.h>
 #include <cyg/io/eth/netdev.h>
@@ -291,7 +295,7 @@
 #endif
                 sc->state &= ~ETH_DRV_NEEDS_DELIVERY;
 #if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT)
-                was_ctrlc_int = HAL_CTRLC_CHECK(*sc->funs->int_vector(sc),
+                was_ctrlc_int = HAL_CTRLC_CHECK(sc->funs->int_vector(sc),
                                                 (int) sc);
                 if (!was_ctrlc_int) // Fall through and run normal code
 #endif
synth_simple.ecm (text/plain, 171 B)
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 {
    user_value 1
};
cdl_component CYGPKG_LWIP_DHCP {
    user_value 1
};
cdl_option CYGDAT_LWIP_ETH0_DHCP {
    user_value 1
};
synth_seq.ecm (text/plain, 407 B)
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 {
    user_value 1
};
cdl_option CYGIMP_LWIP_MODE {
    user_value Sequential
};
cdl_component CYGPKG_LWIP_NETIF_API {
    user_value 1
};
cdl_component CYGPKG_LWIP_NETCONN_API {
    user_value 1
};
cdl_component CYGPKG_LWIP_SOCKET_API {
    user_value 1
};
cdl_component CYGPKG_LWIP_DHCP {
    user_value 1
};
cdl_option CYGDAT_LWIP_ETH0_DHCP {
    user_value 1
};
lpc_simple.ecm (text/plain, 108 B)
cdl_component CYGPKG_LWIP_DHCP {
    user_value 1
};
cdl_option CYGDAT_LWIP_ETH0_DHCP {
    user_value 1
};
lpc_seq.ecm (text/plain, 344 B)
cdl_option CYGIMP_LWIP_MODE {
    user_value Sequential
};
cdl_component CYGPKG_LWIP_NETIF_API {
    user_value 1
};
cdl_component CYGPKG_LWIP_NETCONN_API {
    user_value 1
};
cdl_component CYGPKG_LWIP_SOCKET_API {
    user_value 1
};
cdl_component CYGPKG_LWIP_DHCP {
    user_value 1
};
cdl_option CYGDAT_LWIP_ETH0_DHCP {
    user_value 1
};
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.