This is the mail archive of the ecos-discuss@sources.redhat.com 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: Memory segments


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]