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: ecos memory footprint


On Tue, Jul 14, 2009 at 06:47:48PM +0530, Mandeep Sandhu wrote:
> After a lot of help from you all, me the n00b, finally got to compile
> my first "hello world" app
> for the at91sam7ex board running ecos.
> 
> Here's the o/p of arm-eabi-size for my hello app:
> 
> ~/ecos/ecos-3.0/examples$ arm-eabi-size hello
>    text	   data	    bss	    dec	    hex	filename
>   34952	   1552	   9480	  45984	   b3a0	hello
> 
> So, does this mean my runtime mem usage will be text + bss (i.e around 44KB)?

For the AT91SAM7 devices, its not that simple. You run code from
FLASH, not RAM. These devices are designed so that FLASH access is
fast, so you can do that. The text segment goes in FLASH, the data and
BSS goes into RAM. A device like the AT91SAM7X256 has 256KB flash and
64KB RAM. So you have used about 15% of your flash and 18% of the RAM.

Note, this may not be 100% accurate. You sometimes end up with two
copies of the data, one in FLASH and one in RAM. eg code like

char hw[] = "hello world";

because it is not a constant string, you have the initialization text
in FLASH, but you also have the variable hw in RAM. However if you had

const char hw[] = "hello world";

you should only end up with one copy in FLASH.

The more accurate way to determine what you are actually using is with
objdump --headers

     Andrew

-- 
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]