This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Memory segments
- From: Andrew Lunn <andrew at lunn dot ch>
- To: Federico Dios Vila <fdiosv at yahoo dot es>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Thu, 20 Jan 2005 10:18:30 +0100
- Subject: Re: [ECOS] Memory segments
- References: <20050120090058.88395.qmail@web41721.mail.yahoo.com>
On Thu, Jan 20, 2005 at 10:00:58AM +0100, Federico Dios Vila wrote:
> I'm working with the ARM7TDMI chipset
> (2MbFlash-512kRam Combo) and I'm having
> problems while generating the binary files in order to
> flash them to the target
> device.
>
> My program is running 5 threads and I need to add some
> more. When I declare the
> needed stack variable for a new thread, this problem
> comes up during the
> process of compiling & linking, aborting the creation
> of a binary file:
>
>
> --------------------------------------------------------------------------------
>
>
> make -k all
>
> ------------------------------------------
> ALL : creating objects (compiled & assembled
> sources)
> gps_start.o: src/gps_start.c ==> gps_start.o
> arm-elf-gcc -Wall -I./src
> -Iecos_lib/ecos_install/include -fno-rtti -fno-
> exceptions -DNAV_ONLY_ECOS -DARM -DNAV_ONLY
> -DCLIENT_DEMO -DHW_TRACK -
> DUSE_GSP2_ROM_FP -Os -fomit-frame-pointer -c -o
> obj/gps_start.o
> src/gps_start.c
> cc1: warning: "-fno-rtti" is valid for C++ but not for
> C/ObjC
>
> LINKER : linking files to an absolute object
> sirf_demo.out
> src : crc.o dp-bit.o fp-bit.o gps_demo.o
> gps_nmea.o gps_protocol.o
> gps_rtos.o gps_sirf.o gps_start.o gps_trk_asic.o
> gps_ui_msg.o gps_util.o
> gsm_handler.o gsp2_adc.o gsp2_cache.o gsp2_intr_ctrl.o
> gsp2_rom_fp_wrappers.o
> gsp2_rtc.o gsp2_speed.o gsp2_storage.o malloc.o
> select.o string32.o
> trk_engine.o trk_messages.o
> lib : lib/SiRFgpsServer.a
> arm-elf-gcc -nostartfiles -L ecos_lib/ecos_install/lib
> -Ttarget.ld -
> mcpu=arm7tdmi -g -nostdlib -Wl,--gc-sections
> -Wl,-static obj/crc.o obj/dp-
> bit.o obj/fp-bit.o obj/gps_demo.o obj/gps_nmea.o
> obj/gps_protocol.o
> obj/gps_rtos.o obj/gps_sirf.o obj/gps_start.o
> obj/gps_trk_asic.o
> obj/gps_ui_msg.o obj/gps_util.o obj/gsm_handler.o
> obj/gsp2_adc.o
> obj/gsp2_cache.o obj/gsp2_intr_ctrl.o
> obj/gsp2_rom_fp_wrappers.o obj/gsp2_rtc.o
> obj/gsp2_speed.o obj/gsp2_storage.o obj/malloc.o
> obj/select.o obj/string32.o
> obj/trk_engine.o obj/trk_messages.o
> lib/SiRFgpsServer.a -o bin/sirf_demo.out
> /ecos-d/software/eCos_SDK/H-i686-pc-cygwin/bin/../lib/gcc-lib/arm-
> elf/3.3.2/../../../../arm-elf/bin/ld: address 0x20f14
> of bin/sirf_demo.out
> section .bss is not within region int_sram
This suggets your application is too big to fit inside the internal
sram of the device. Are you intending to put it inside the sram or do
you want it in external memory?
If you want it in the internal memory you will have to start
optimizing the whole system. Throw away as many packages as you
can. Also take a look at the memory map and look for big symbols in
the SRAM. Can you optimize there size, or even remove them? You need
to look at your complete appliction, not just eCos.
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