[ECOS] Huge memory footprint for a simple "hello world"

Socrates Socrates socrates.socrates@gmail.com
Tue Jun 6 13:58:00 GMT 2006


Thanks Andrew,

Certainly I am new to embedded systems indeed.  I now run:
/arm-elf-ld -nostartfiles  -nodefaultlibs  -nostdlib -s  -static
-L/opt/ecos/gnutools/arm-elf/arm-elf/lib
-L/opt/ecos/gnutools/arm-elf/lib/gcc-lib/arm-elf/3.2.1/ -o test test.o
-Ttarget.ld

So the size is now down to (~91k):
-rwxr-xr-x  1 socrates socrates 91364 Jun  6 14:07 test

which I think is still big in my opinion.

-b option: The upload always fails until I use the -r option which
forces me to use the -b option.
How do I go about getting a succesful upload without using the -r and
hence -b option?

Thanks once again.

Regards;
Soc
On 6/6/06, Andrew Lunn <andrew@lunn.ch> wrote:
> On Tue, Jun 06, 2006 at 02:03:05PM +0200, Socrates Socrates wrote:
> > Hi All
> >
> > AIM:
> > I am using the EB40 board and I am trying to test a simple "hellow
> > world" application.
> >
> > Problem:
> > The memory footprint of the application is too big to fit into the
> > available RAM. The failure happens during uploading of the
> > application.
> >
> > Here's more information of my steps:
> >
> > 1. I used "ecoconfig EB40" to setup and build redboot for the EB40 board.
> > 2. I used "arm-elf-gdb redboot.elf" , tar rdi /dev/ttyS0, set
> > $cpsr=0xd3, load, cont, Crtl Z, minicom
> > 3. RedBoot> load -b -m xmodem -b 0x02033428             # My notes:
> > 0x02033428 is the lower range of the available RAM as reported by
> > 'version' command on RedBoot
> > 4. I comppile and link my test app
> > /opt/ecos/gnutools/arm-elf/bin/arm-elf-gcc -c -o test.o -Wall
> > -I/home/socrates/work/atmel/020606-ARM/install/include test.c
> > /opt/ecos/gnutools/arm-elf/bin/arm-elf-ld -nostartfiles -nostdlibs
> > -L/opt/ecos/gnutools/arm-elf/arm-elf/lib
> > -L/opt/ecos/gnutools/arm-elf/lib/gcc-lib/arm-elf/3.2.1/ -o test test.o
> > -T/home/socrates/work/atmel/020606-ARM/install/lib/target.ld
> >
> > socrates@would:~/work/atmel$ ls -l test*
> > -rwxr-xr-x  1 socrates  socrates  322442 Jun  6 12:06 test
> > -rw-r--r--  1 socrates  socrates     138 Jun  6 11:35 test.c
> > -rw-r--r--  1 socrates  socrates     880 Jun  6 12:06 test.o
> >
> > Here's is my test.c file:
> > *************************************************************************
> > #include <cyg/infra/diag.h>
> >
> > char *RedBoot_version = "aslkjdahlsdfjk";
> >
> > int main(void)
> > {
> >   diag_printf("HELLO WORLD\n");
> >   return 0;
> > }
> > **************************************************************************
> >
> >
> > I'd really appreciate your help.
> >
> > Oh, I am very very new to EB40 or ecos for that matter.
>
> And also probably very new to embedded systems and how compilers work.
> This is a FAQ. Read the documentation about arm-elf-size and what an
> ELF file is. The test executable contains all the debugging
> information and lots of other things which are not used on the target.
> gdb knows this and will download just what is needed.
>
> Also, don't use -b 0x... eCos is not position independent. The image
> has to go where the image expects to go.
>
>     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



More information about the Ecos-discuss mailing list