On Fri, Jan 2, 2009 at 4:30 PM, YAP <[email protected]> wrote: > OK Thanks I will try that. > > I noticed that netcon_new returns zero if both threads are started so > the problem really appears to be there. Looks like a memory problem. > > /Ake
OK I found the problem. MEMP_NUM_NETBUF and MEMP_NUM_NETCONN was set to low (2) and increasing the values (4) made things work. I was not aware that the listen also counted as a connection but is quite understandable now when I discovered the problem. Cheers /Ake > > > On Fri, Jan 2, 2009 at 11:06 AM, Muhamad Ikhwan Ismail > <[email protected]> wrote: >> >> Hi, >> >> It seems to me you might have a concurrent access problem on your sys_arch >> layer since >> when you had the 2 listener socket in a single task, it worked. Try >> something like this, >> >> -Block both thread >> -start one of them, and wait till the netconn_accept is done >> -start the 2nd thread after that >> >> If it works then my assumption could be right. The only thing the 2 socket >> shares in netconn_accept is the >> mailbox of the tcpip tasks and the same function call on sys_arch layers. >> >> If that the case you might wanna do preemption protection to critical codes >> in the sys_arch layer? >> >>> Date: Fri, 2 Jan 2009 10:55:06 +0100 >>> From: [email protected] >>> To: [email protected] >>> Subject: Re: [lwip-users] Listen on more then one port with lwIP >>> >>> as you top post I do so to so the source is preserved below. >>> >>> lwIP version is 1.3 >>> Microchip GCC C32 MIPS compiler >>> FreeRTOS 5.1.0 >>> >>> By not working I mean none of the listner threads return after >>> netconn_accept which they do if I only have one thread. >>> >>> I pretty much expected this to be a usage fault and that the way I use >>> dthe code was invalid. >>> >>> Cheers >>> /Ake >>> >>> On Fri, Jan 2, 2009 at 10:31 AM, Muhamad Ikhwan Ismail >>> <[email protected]> wrote: >>> > >>> > Hi, >>> > >>> > It would help the developer answer your question, if you explain what do >>> > you >>> > mean by it does not work >>> > e.g. where it blocks, you are getting no data or something like that. >>> > You >>> > should also search the mailing list >>> > for previous posts, someone might have asked the same q. >>> > >>> > You might want to info them also of your port and version. >>> > >>> > Greetings >>> > Ikhwan >>> > >>> > >>> >> Date: Thu, 1 Jan 2009 23:00:54 +0100 >>> >> From: [email protected] >>> >> To: [email protected] >>> >> Subject: [lwip-users] Listen on more then one port with lwIP >>> >> >>> >> I am new to lwIP and use it with FreeRTOS on a PIC32 so be patient >>> >> with me if this is just a silly question. >>> >> >>> >> I want to have a web server plus a custom interface on the firmware I >>> >> work on at the moment. So I try to solve this starting a new thread >>> >> where I initialised lwip and then start two listner threads for the >>> >> two ports. >>> >> >>> >> This does not work however even if they each work perfect on there own. >>> >> >>> >> How should this be coded correctly? Any hints appreciated. >>> >> >>> >> My listner thread look like this >>> >> >>> >> >>> >> >>> >> /////////////////////////////////////////////////////////////////////////////// >>> >> // taskVSCPListner >>> >> // >>> >> >>> >> void taskVSCPListner( void *pvParameters ) >>> >> { >>> >> struct netconn *pxVSCPListener; // Listens for VSCP connections >>> >> struct netconn *pxNewConnection; >>> >> >>> >> // Create a new tcp connection handle for VSCP >>> >> pxVSCPListener = netconn_new( NETCONN_TCP ); >>> >> netconn_bind( pxVSCPListener, NULL, VSCP_LEVEL2_TCP_PORT ); >>> >> netconn_listen( pxVSCPListener ); >>> >> >>> >> // Loop forever >>> >> for( ;; ) { >>> >> >>> >> // Wait for connection. >>> >> pxNewConnection = netconn_accept( pxVSCPListener ); >>> >> >>> >> if ( pxNewConnection != NULL ) { >>> >> >>> >> // Service connection. >>> >> vProcessVSCPConnection( pxNewConnection ); >>> >> >>> >> while( netconn_delete( pxNewConnection ) != ERR_OK ) { >>> >> vTaskDelay( webSHORT_DELAY ); >>> >> } >>> >> >>> >> } >>> >> >>> >> } >>> >> } >>> >> >>> >> >>> >> >>> >> >>> >> /////////////////////////////////////////////////////////////////////////////// >>> >> // taskHTTPListner >>> >> // >>> >> >>> >> void taskHTTPListner( void *pvParameters ) >>> >> { >>> >> struct netconn *pxHTTPListener; // Listens for HTTP connections >>> >> struct netconn *pxNewConnection; >>> >> >>> >> // Create a new tcp connection handle for HTTP >>> >> pxHTTPListener = netconn_new( NETCONN_TCP ); >>> >> netconn_bind( pxHTTPListener, NULL, webHTTP_PORT ); >>> >> netconn_listen( pxHTTPListener ); >>> >> >>> >> // Create a new tcp connection handle for VSCP >>> >> //pxVSCPListener = netconn_new( NETCONN_TCP ); >>> >> //netconn_bind( pxHTTPListener, NULL, VSCP_LEVEL2_TCP_PORT ); >>> >> //netconn_listen( pxVSCPListener ); >>> >> >>> >> // Loop forever >>> >> for( ;; ) { >>> >> >>> >> // Wait for connection. >>> >> pxNewConnection = netconn_accept( pxHTTPListener ); >>> >> >>> >> if ( pxNewConnection != NULL ) { >>> >> >>> >> // Service connection. >>> >> vProcessConnection( pxNewConnection ); >>> >> >>> >> while( netconn_delete( pxNewConnection ) != ERR_OK ) { >>> >> vTaskDelay( webSHORT_DELAY ); >>> >> } >>> >> >>> >> } >>> >> >>> >> } >>> >> } >>> >> >>> >> Cheers >>> >> /Ake >>> >> >>> >> >>> >> -- >>> >> --- >>> >> Ake Hedman >>> >> D of Scandinavia, http://www.dofscandinavia.com >>> >> >>> >> >>> >> _______________________________________________ >>> >> lwip-users mailing list >>> >> [email protected] >>> >> http://lists.nongnu.org/mailman/listinfo/lwip-users >>> > >>> > ________________________________ >>> > It's the same Hotmail(R). If by "same" you mean up to 70% faster. Get >>> > your >>> > account now. >>> > _______________________________________________ >>> > lwip-users mailing list >>> > [email protected] >>> > http://lists.nongnu.org/mailman/listinfo/lwip-users >>> > >>> >>> >>> >>> -- >>> --- >>> Ake Hedman >>> D of Scandinavia, http://www.dofscandinavia.com >>> >>> >>> _______________________________________________ >>> lwip-users mailing list >>> [email protected] >>> http://lists.nongnu.org/mailman/listinfo/lwip-users >> >> ________________________________ >> Send e-mail anywhere. No map, no compass. Get your Hotmail(R) account now. >> _______________________________________________ >> lwip-users mailing list >> [email protected] >> http://lists.nongnu.org/mailman/listinfo/lwip-users >> > > > > -- > --- > Ake Hedman > D of Scandinavia, http://www.dofscandinavia.com > -- --- Ake Hedman D of Scandinavia, http://www.dofscandinavia.com _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
