This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
RE: eCos using Codesourcery Toolchain
- From: "Chris Zimman" <czimman at bloomberg dot com>
- To: <simon dot kallweit at intefo dot ch>, <ecos-discuss at ecos dot sourceware dot org>
- Date: Tue, 23 Sep 2008 09:00:46 -0400
- Subject: [ECOS] RE: eCos using Codesourcery Toolchain
- References: <F31C1582037F5041B0CD525FD870AE6A77450F@ny2545.corp.bloomberg.com> <48CF7928.1060703@intefo.ch> <F31C1582037F5041B0CD525FD870AE6A774512@ny2545.corp.bloomberg.com> <48CFAF14.3050502@intefo.ch> <F31C1582037F5041B0CD525FD870AE6A774513@ny2545.corp.bloomberg.com> <48CFC11F.5010402@intefo.ch> <F31C1582037F5041B0CD525FD870AE6A774514@ny2545.corp.bloomberg.com> <48D8D38D.3080402@intefo.ch>
Hi Simon,
It may be that the RAM/ROM region you have respectively set is too small for
the image that's being created -- or it may just be a binutils bug.
I didn't have any issues with any particular 'wierdness' like that.
What happens if you build your code under ARM ELF? That was usually my
sanity check if I suspect the EABI tool chain was doing something weird.
--Chris
> -----Original Message-----
> From: simon.kallweit@intefo.ch [mailto:simon.kallweit@intefo.ch]
> Sent: 23 September 2008 12:31
> To: Chris Zimman; ecos-discuss@ecos.sourceware.org
> Subject: eCos using Codesourcery Toolchain
>
> 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)
> /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 (-32603)
> /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 (-32603)
> /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)
> /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 (-16335)
> /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 (-16335)
> /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 (-16303)
> /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 (-16303)
> /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 (-16295)
> /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 (-16295)
> /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 (-16263)
> /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 (-16263)
>
> One problem is the fis_usage() function:
>
> fis_usage(char *why)
> {
> diag_printf("*** invalid 'fis' command: %s\n", why);
> cmd_usage(__FIS_cmds_TAB__, &__FIS_cmds_TAB_END__, "fis "); }
>
> The pointer resolution of the string literal ("*** invalid ...") is
> going wrong (r0 holds a wrong address), so diag_printf() corrupts
> memory and the whole system crashes. If I replace the function with a
> marco, the code works properly and I get a few less "access beyond"
> warnings.
> There must be other places where things go wrong.
>
> Any ideas here?
>
> I attach my current linker script, as I suppose the mistake could be
> there.
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss