This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Re: ecos mem footprint with HTTPD support


Wow Sergei! some telepathy you have...how'd you know I was about
to post the error .bss error! :)

seems like a std error? now back to reading your reply :) .....

On Wed, Jul 15, 2009 at 6:48 PM, Sergei
Gavrikov<sergei.gavrikov@gmail.com> wrote:
> John Dallaway wrote:
>> Hi Mandeep
>>
>> Mandeep Sandhu wrote:
>>
>> > Just as I got a rough estimate of how much mem (worst case) my hello world
>> > app along with the rest of the ecos libs take, is there any sample prog which I
>> > can use to ascertain the runtime size of my app which uses the HTTPD pkg?
>>
>> Note that the HTTPD package is intended for use with the eCos FreeBSD
>> TCP/IP stack, not lwIP.
>>
>> The lwIP TCP/IP stack provides its own HTTP server test. Simply
>> configure eCos for lwIP networking and then build eCos and the eCos
>> tests for lwIP. Run "arm-eabi-size" (assuming an ARM target) on the
>> resulting "httpd" test executable file.
>
> To know its sizes and to peace a linker I use a trick (workaround for
> "section .bss is not within region ram" error).
>
> Let's call it "How much is The Fish". It is
>
> sed -i '/ram.*LENGTH/s,$,0,' isntall/lib/target.ld
>
> it just multiply target's ram size on 16 :-)
>
> I run this 1-line sed script before to build the tests.
>
> The below is just an example (I have no target)
>
> ecosconfig new sam7ex256 lwip_eth
> ecosconfig tree
> make
> sed -i '/ram.*LENGTH/s,$,0,' isntall/lib/target.ld
> make -C net/lwip_tcpip/current/ tests TESTS=tests/httpd
>
> ? text ? ?data ? ? bss ? ? dec ? ? hex filename
> ?71240 ? ?5428 ?102808 ?179476 ? 2bd14 httpd
>
> Ups... But, AFAIK, lwip's pbufs sucks RAM. Default number of pbufs is
> 60, its default size is 1K. 60x1K... Well, let's reduce amount of the
> buffers, i.e. import the below
>
> cdl_option CYGNUM_LWIP_PBUF_POOL_SIZE {
> ? ?user_value 6
> };
>
> and rebuild the test
>
> ? text ? ?data ? ? bss ? ? dec ? ? hex filename
> ?71240 ? ?5428 ? 46648 ?123316 ? 1e1b4 httpd
>
> It is something more interesting, but, I could break down the lwip
> networking. I do not know. To reduce text segment you can disable udp,
> raw ethernet support, etc., etc. (it's eCos).
>
> Hey, do not forget to revert ld script! It's easy if you use bash
> history
>
> sed -i '/ram.*LENGTH/s,0$,,' isntall/lib/target.ld
>
> And now, without jokes. Look at Adam Dunkel's uIP TCP/IP stack
> http://www.sics.se/~adam/uip/
>
> and his invention, - Protothreads (Stackless Threads in C)
> http://www.sics.se/~adam/pt/
>
> I have a dream to try eCos together with Adam's Protothreads. If it will
> allright, it will be possible to get unbeatable sizes for small memory
> footprint targets.
>
>
> Sergei
>

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]