From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26237 invoked by alias); 6 Jun 2006 13:38:26 -0000 Received: (qmail 26215 invoked by uid 22791); 6 Jun 2006 13:38:23 -0000 X-Spam-Check-By: sourceware.org Received: from londo.lunn.ch (HELO londo.lunn.ch) (80.238.139.98) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 06 Jun 2006 13:37:39 +0000 Received: from lunn by londo.lunn.ch with local (Exim 3.36 #1 (Debian)) id 1FnbkV-0002Ah-00; Tue, 06 Jun 2006 15:37:35 +0200 Date: Tue, 06 Jun 2006 13:38:00 -0000 To: Socrates Socrates Cc: ecos-discuss@ecos.sourceware.org Message-ID: <20060606133735.GH15066@lunn.ch> Mail-Followup-To: Socrates Socrates , ecos-discuss@ecos.sourceware.org References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.11+cvs20060403 From: Andrew Lunn X-IsSubscribed: yes Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: Re: [ECOS] Huge memory footprint for a simple "hello world" X-SW-Source: 2006-06/txt/msg00051.txt.bz2 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 > > 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