This is the mail archive of the ecos-discuss@sourceware.org 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: eCos using Codesourcery Toolchain


On Tue, Sep 23, 2008 at 01:31:25PM +0200, simon.kallweit@intefo.ch wrote:
> Hi Chris
>
> Thanks again for your help. EABI seems to work fine so far. But I've run  
> in another problem with the codesourcery toolchain, might be cortex  
> specific though. I have a working RedBoot, but it crashes in a few  
> places, because code is compiled wrong. Here are the warning from the  
> linker:
>
 
> /home/simon/ecos/tools/bin/../lib/gcc/arm-none-eabi/4.2.3/../../../../arm-none-eabi/bin/ld: 
> /home/simon/ecos/build/stm32_redboot_install/lib/extras.o: access beyond  
> end of merged section (-32599)
 
> fis_usage(char *why)
> {
>    diag_printf("*** invalid 'fis' command: %s\n", why);
>    cmd_usage(__FIS_cmds_TAB__, &__FIS_cmds_TAB_END__, "fis ");
> }

A guess.....

It could be the compiler is using the wrong addressing mode for the
memory layout. It could be assuming that all the code and data is
close by. However your RAM and FLASH could be well separated. So 16
bit addresses are not sufficient to represent them. It needs to use 32
bit addresses.

A quick test would be to compile the code so that everything goes into
RAM. See if that removes the linker error and look at the assembly for
the load. Is it now correct?

If that works you need to look through the command line options for
gcc and see if you can set the memory model, the use of long pointers
etc...

        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]