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

Andrew Lunn andrew@lunn.ch
Tue Jun 6 13:38:00 GMT 2006


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