EmbeddedRelated.com
Forums

Embedded Web Server ... Question about most common pactices...

Started by Sink0 October 4, 2010
Your question cannot be answered without you providing more information
as you say very little as to which processor you are using, how much RAM
you have, how much ROM you have, what features you require, or what
throughput you require.  I have commented below all the same.


On 04/10/2010 15:24, Sink0 wrote:
> Hi i need to implement an embedded webserver and i was wondering, what =
is
> the most common practice on this field. To develop your own TCP/IP stac=
k The answer to develop your own stack would almost certainly be "no".
> or use a generic and open one as uIP?=20
Why do you have those as the only two options? There are lots of commercial stacks too.
> Any one knows if uIP is reliable?=20
I have used uIP a lot. It is very good for what it is, and comes with a web server implementation that permits a form of CGI scripting - but it is designed for use on systems with *very* limited RAM and is therefore itself very limited. The main limitation of uIP is the fact that it only allows one packet to be outstanding on the network at a time. This means, if you are communicating with a standard TCP/IP stack (a desktop machine for example) then communication will be very slow due to the delayed ACK algorithms. I have done some work with uIP to get around this problem, and some of the new web server examples in the FreeRTOS download achieve quite good throughput - but its never going to approach what a full/large TCP/IP stack could achieve.
> We > don't have a defined hardware, so i need to create it as portable as > possible
uIP does not have a standard interface, so your application code will not by default be portable across different stacks. I'm sure you could write some form of interface layer though to make it more standard, but that would seem like a lot of effort when you could just take a stack with a standard interface in the first place. but probably will be a 32 bits uCU as ARM. Just to explain the
> application, is to create a basic interface to our product for initial > configuration purposes.
Regards, Richard. + http://www.FreeRTOS.org Designed for Microcontrollers. More than 7000 downloads per month. + http://www.SafeRTOS.com Certified by T=DCV as meeting the requirements for safety related systems= =2E
> Yea that makes sense... just question. Any idea if uIP and lwIP are goo=
d
> and reliable stacks? Do you have any sugestion of a open webserver for > running from bios?
I replied to your original post regarding that, although I am curious as to which board you are planning on using that has an ARM7 and a BIOS.
>=20 >=20 > Second question and totaly OFFtopic, do you post from embedded related =
or
> from another website? I cant see the same signature on your post....
EmbeddedRelated.com has nothing to do with this news group, but is a web site that harvests publicly available information and conversations from different places on the web, then presents all the information in one place and provides an interface for you to contribute - presumably this is done purely to provide a platform on which Google adverts can be serve= d. Regards, Richard. + http://www.FreeRTOS.org Designed for Microcontrollers. More than 7000 downloads per month. + http://www.SafeRTOS.com Certified by T=DCV as meeting the requirements for safety related systems= =2E
>I replied to your original post regarding that, although I am curious as >to which board you are planning on using that has an ARM7 and a BIOS.
Well i used the unappropriated word. I am just running the uCU with no OS. Any way, that was a piece of good information about uIP. About the processor, probably a 32 bits uCU with 256KB of flash and 32KB of RAM minimum. For sure not less than that. But maybe and most probably more. Actually to use a low end 32 bit uCU is not fixed. We may use a high end ARM as a TI OMAP too. I am not defining the processor and requirements because i am creating a standard solution for all our products. I cant even say that is a product because is not intended for commercial purposes for now but that kind of information is irrelevant. Do you have any experience with lwIP. According to the author, it got a bigger throughput. For sure the fact that the stack would be that slow is for sure not good as the system would be controlled using the Ethernet connection. Any suggestion about non-expensive commercial stack or free reliable stack better than uIP (or lwIP)? Thank you --------------------------------------- Posted through http://www.EmbeddedRelated.com
On 05/10/2010 10:49, Sink0 wrote:
>> I replied to your original post regarding that, although I am curious =
as
>> to which board you are planning on using that has an ARM7 and a BIOS. >=20 >=20 > Well i used the unappropriated word. I am just running the uCU with no =
OS.
> Any way, that was a piece of good information about uIP. About the > processor, probably a 32 bits uCU with 256KB of flash and 32KB of RAM > minimum. For sure not less than that. But maybe and most probably more.=
> Actually to use a low end 32 bit uCU is not fixed. We may use a high en=
d
> ARM as a TI OMAP too. I am not defining the processor and requirements > because i am creating a standard solution for all our products. I cant =
even
> say that is a product because is not intended for commercial purposes f=
or
> now but that kind of information is irrelevant. Do you have any experie=
nce
> with lwIP. According to the author, it got a bigger throughput. For sur=
e
> the fact that the stack would be that slow is for sure not good as the > system would be controlled using the Ethernet connection. Any suggestio=
n
> about non-expensive commercial stack or free reliable stack better than=
uIP
> (or lwIP)?
I think lwIP is a good stack for its intended purpose and the FreeRTOS code does include some lwIP examples too - although they are rather old now. Positives are the way it minimises its memory usage by chaining memory buffers together, and its free liberal licensing. Negatives are the way it minimises its memory usage by chaining memory buffers together - because of the extra processing time required. Like all engineering - the design decisions involve trade offs. It is also quite complex to use and configure the first time you approach it - there are three API's for a start so the first decision is which to use. Once you have invested the time it works well, but you do need to invest the time to become a competent users. lwIP is a bit of a moving target because it is constantly being developed and updated (which is not necessarily a negative thing). Also, I'm not sure if there are any complete web servers available for free that will just slot into with it. The web server that comes with lwIP is not much more than what some professional TCP/IP stack vendors call an "HTTP listener". Some microcontroller vendors have free versions of NicheLite you could utilise, and then, given enough RAM, you could obtain a free or low cost web server from several different companies or open source projects. Regards, Richard. + http://www.FreeRTOS.org Designed for Microcontrollers. More than 7000 downloads per month. + http://www.SafeRTOS.com Certified by T=DCV as meeting the requirements for safety related systems= =2E
El 04/10/2010 16:24, Sink0 escribi�:
> Hi i need to implement an embedded webserver and i was wondering, what is > the most common practice on this field. To develop your own TCP/IP stack or > use a generic and open one as uIP? Any one knows if uIP is reliable? We > don't have a defined hardware, so i need to create it as portable as > possible but probably will be a 32 bits uCU as ARM. Just to explain the > application, is to create a basic interface to our product for initial > configuration purposes. >
I have successfully used GoAhead ( http://www.goahead.com/products/webserver/default.aspx ) with a product running VxWorks, which provides its own TCP/IP stack (based on BSD.) It's free and small, and has been ported to several OSs, both commercial and open source. I would never write my own TCP/IP stack or web server these days.
> I replied to your original post regarding that, although I am curious as > to which board you are planning on using that has an ARM7 and a BIOS.
Thank you for all the information!! Very useful!! Any other ingestion will be appreciated hehe. Now totally off-topic, Richard wrote that he would like to know which board have a ARM 7 and a BIOS. Just to make things clear for me. Whats exactly does run a uCU from the BIOS means. Until today that would mean that it is running with no OS (as it would happen on a DSP or a low-end uCU). Isnt that the real meaning? If not, how would you call that and whats the real meaning of running from BIOS? Thank you very much!!
Sink0 wrote:
ally off-topic, Richard wrote that he would like to know which
> board have a ARM 7 and a BIOS. Just to make things clear for me. Whats > exactly does run a uCU from the BIOS means. Until today that would > mean that it is running with no OS (as it would happen on a DSP or a > low-end uCU). Isnt that the real meaning? If not, how would you call > that and whats the real meaning of running from BIOS?
Fair enough. If you're defining terms, that's not an unreasonable definition. My preferred term would be some variation on "running on bare silicon." For me, BIOS is a firmware subroutine library that overlying software invokes to access hardware. A bare-silicon program will have these functions, of course, but it won't have to organize them to be accessible from outside. Mel.
On Oct 5, 5:33=A0pm, Mel <mwil...@the-wire.com> wrote:
> Sink0 wrote: > > ally off-topic, Richard wrote that he would like to know which > > > board have a ARM 7 and a BIOS. Just to make things clear for me. Whats > > exactly does run a uCU from the BIOS means. Until today that would > > mean that it is running with no OS (as it would happen on a DSP or a > > low-end uCU). Isnt that the real meaning? If not, how would you call > > that and whats the real meaning of running from BIOS? > > Fair enough. =A0If you're defining terms, that's not an unreasonable > definition. =A0My preferred term would be some variation on "running on b=
are
> silicon." > > For me, BIOS is a firmware subroutine library that overlying software > invokes to access hardware. =A0A bare-silicon program will have these > functions, of course, but it won't have to organize them to be accessible > from outside. > > =A0 =A0 =A0 =A0 Mel.
Any one knows if lwIP need an OS? Or can i run it "on bare silicon"? How aboute NicheLite? Thank you!
On 06/10/2010 13:01, Sink0 wrote:
> On Oct 5, 5:33 pm, Mel <mwil...@the-wire.com> wrote: >> Sink0 wrote: >> >> ally off-topic, Richard wrote that he would like to know which >> >>> board have a ARM 7 and a BIOS. Just to make things clear for me. What=
s
>>> exactly does run a uCU from the BIOS means. Until today that would >>> mean that it is running with no OS (as it would happen on a DSP or a >>> low-end uCU). Isnt that the real meaning? If not, how would you call >>> that and whats the real meaning of running from BIOS? >> >> Fair enough. If you're defining terms, that's not an unreasonable >> definition. My preferred term would be some variation on "running on =
bare
>> silicon." >> >> For me, BIOS is a firmware subroutine library that overlying software >> invokes to access hardware. A bare-silicon program will have these >> functions, of course, but it won't have to organize them to be accessi=
ble
>> from outside. >> >> Mel. >=20 > Any one knows if lwIP need an OS? Or can i run it "on bare silicon"? > How aboute NicheLite? >=20 > Thank you!
lwIP can be used with no OS. I know NicheLite can be used with simple co-operative schedulers, but I'm not sure about with no OS at all - although I would be very surprised if it couldn't. Regards, Richard. + http://www.FreeRTOS.org Designed for Microcontrollers. More than 7000 downloads per month. + http://www.SafeRTOS.com Certified by T=DCV as meeting the requirements for safety related systems= =2E
On Oct 6, 3:20=A0pm, FreeRTOS info <noem...@given.com> wrote:
> On 06/10/2010 13:01, Sink0 wrote: > > > > > On Oct 5, 5:33 pm, Mel <mwil...@the-wire.com> wrote: > >> Sink0 wrote: > > >> ally off-topic, Richard wrote that he would like to know which > > >>> board have a ARM 7 and a BIOS. Just to make things clear for me. What=
s
> >>> exactly does run a uCU from the BIOS means. Until today that would > >>> mean that it is running with no OS (as it would happen on a DSP or a > >>> low-end uCU). Isnt that the real meaning? If not, how would you call > >>> that and whats the real meaning of running from BIOS? > > >> Fair enough. =A0If you're defining terms, that's not an unreasonable > >> definition. =A0My preferred term would be some variation on "running o=
n bare
> >> silicon." > > >> For me, BIOS is a firmware subroutine library that overlying software > >> invokes to access hardware. =A0A bare-silicon program will have these > >> functions, of course, but it won't have to organize them to be accessi=
ble
> >> from outside. > > >> =A0 =A0 =A0 =A0 Mel. > > > Any one knows if lwIP need an OS? Or can i run it "on bare silicon"? > > How aboute NicheLite? > > > Thank you! > > lwIP can be used with no OS. =A0I know NicheLite can be used with simple > co-operative schedulers, but I'm not sure about with no OS at all - > although I would be very surprised if it couldn't. > > Regards, > Richard. > > +http://www.FreeRTOS.org > Designed for Microcontrollers. =A0More than 7000 downloads per month. > > +http://www.SafeRTOS.com > Certified by T=DCV as meeting the requirements for safety related systems=
. Any other comment about a comparison between both (lwIP and LiteNiche)? The license of LiteNiche would probably be a problem, but to start we could use a ColdFire with Freescale stack (with LiteNiche) and for latter development get the full license. But about performance and restrictions, any coment about both? Another question is, how portable are the webservers usually? I mean can i use the coldfire webserver (implemented using LiteNiche) with the lwIP, or use the uIP webserver with lwIP? Any suggestion of free webserver that can be used with lwIP (if possible with some sort of authentication as a password) Thank you very much for all the responses!!