[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] ATmega128 etc. support test release

From: Marek Michalkiewicz
Subject: [avr-gcc-list] ATmega128 etc. support test release
Date: Sat, 11 May 2002 16:31:32 +0200 (CEST)


having a few days break from work, I finally sat down and did something
to improve ATmega128 support.  In http://www.amelek.gda.pl/avr/test/
you can find a new avr-libc release, and a patch for current CVS binutils
(I'm still waiting for approval of binutils CVS write access).
You must use the current CVS tree of GCC as well (patch applied today).

The binutils patch adds 5 new ld emulations called avr1 ... avr5 which
should be able to support all current and future devices, at the cost
of not checking for memory overflow (you have to check the output of
avr-size).  The existing ld emulations are left unchanged, so the old
(3.0.x) GCC should still work fine with the new (patched) binutils.

I made a new ld script template (avr.sc) based on the old one (elf32avr.sc)
so that future changes to linker scripts (C++ support, etc.) should not
affect old versions of GCC (using the old avr85xx etc. emulations).

Devices where SRAM starts at 0x100 instead of 0x60 (ATmega64, 128, 162)
are handled by the GCC specs file adding -Tdata 0x800100 to the linker
options, and still using the same avr5 emulation and linker script.

Current CVS GCC requires the patched binutils to support the latest
devices (should still work with the old binutils for your good old
at90s8515).  In the long run, it may be a good idea to change GCC to
use the new avr1 ... avr5 emulations for all devices, so that we don't
have to carry the old avr85xx ones in binutils forever.

Warning: GCC in CVS is currently slightly broken ("progmem" attribute
doesn't work) so be careful - it's all experimental.

To fully support all new devices, the missing io*.h files need to be
written: iotn26.h, iom16.h, iom162.h, iom32.h, iom323.h, iom64.h,
iom8515.h, io43320.h, io43355.h.  Everything else is already there...

After the binutils patch is officially applied, GCC will be changed
to use the new emulations for all devices.  So the new GCC will not
work with the old binutils, only the reverse is true.

Happy hacking,

avr-gcc-list at http://avr1.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]