This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, AVR,Committed] Add support for new devices
- From: Anatoly Sokolov <aesok at post dot ru>
- To: gcc-patches at gcc dot gnu dot org
- Cc: eweddington at cso dot atmel dot com, aesok at post dot ru
- Date: Wed, 12 Nov 2008 23:16:44 +0300
- Subject: [PATCH, AVR,Committed] Add support for new devices
Hi.
The attached patch to add support for the new AVR device in GCC.
2008-11-12 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
atmega32u6 devices.
* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
Index: gcc/config/avr/avr.h
===================================================================
--- gcc/config/avr/avr.h (revision 141795)
+++ gcc/config/avr/avr.h (working copy)
@@ -840,7 +840,7 @@
mmcu=at90usb162|\
mmcu=attiny167: -m avr3}\
%{mmcu=atmega8*|\
- mmcu=atmega48*|\
+ mmcu=atmega4*|\
mmcu=at90pwm1|\
mmcu=at90pwm2|\
mmcu=at90pwm2b|\
@@ -876,16 +876,21 @@
mmcu=atmega165*|\
mmcu=atmega168*|\
mmcu=atmega169*|\
- mmcu=atmega8hva|\
- mmcu=atmega16hva|\
+ mmcu=atmega4hv*|\
+ mmcu=atmega8hv*|\
+ mmcu=atmega16hv*|\
+ mmcu=atmega32hv*|\
mmcu=attiny48|\
mmcu=attiny88|\
mmcu=attiny167|\
mmcu=at90can*|\
mmcu=at90pwm*|\
mmcu=atmega32c1|\
+ mmcu=atmega64c1|\
mmcu=atmega32m1|\
- mmcu=atmega32u4|\
+ mmcu=atmega64m1|\
+ mmcu=atmega16u4|\
+ mmcu=atmega32u*|\
mmcu=at90usb*: -Tdata 0x800100}\
%{mmcu=atmega640|\
mmcu=atmega1280|\
@@ -992,13 +997,21 @@
%{mmcu=atmega6490:crtm6490.o%s} \
%{mmcu=atmega8hva:crtm8hva.o%s} \
%{mmcu=atmega16hva:crtm16hva.o%s} \
+%{mmcu=atmega16hvb:crtm16hvb.o%s} \
+%{mmcu=atmega32hvb:crtm32hvb.o%s} \
+%{mmcu=atmega4hvd:crtm4hvd.o%s} \
+%{mmcu=atmega8hvd:crtm8hvd.o%s} \
%{mmcu=at90can32:crtcan32.o%s} \
%{mmcu=at90can64:crtcan64.o%s} \
%{mmcu=at90pwm216:crt90pwm216.o%s} \
%{mmcu=at90pwm316:crt90pwm316.o%s} \
%{mmcu=atmega32c1:crtm32c1.o%s} \
+%{mmcu=atmega64c1:crtm64c1.o%s} \
%{mmcu=atmega32m1:crtm32m1.o%s} \
+%{mmcu=atmega64m1:crtm64m1.o%s} \
+%{mmcu=atmega16u4:crtm16u4.o%s} \
%{mmcu=atmega32u4:crtm32u4.o%s} \
+%{mmcu=atmega32u6:crtm32u6.o%s} \
%{mmcu=at90usb646:crtusb646.o%s} \
%{mmcu=at90usb647:crtusb647.o%s} \
%{mmcu=at94k:crtat94k.o%s} \
Index: gcc/config/avr/avr.c
===================================================================
--- gcc/config/avr/avr.c (revision 141795)
+++ gcc/config/avr/avr.c (working copy)
@@ -214,6 +214,8 @@
{ "atmega8515", ARCH_AVR4, "__AVR_ATmega8515__" },
{ "atmega8535", ARCH_AVR4, "__AVR_ATmega8535__" },
{ "atmega8hva", ARCH_AVR4, "__AVR_ATmega8HVA__" },
+ { "atmega4hvd", ARCH_AVR4, "__AVR_ATmega4HVD__" },
+ { "atmega8hvd", ARCH_AVR4, "__AVR_ATmega8HVD__" },
{ "at90pwm1", ARCH_AVR4, "__AVR_AT90PWM1__" },
{ "at90pwm2", ARCH_AVR4, "__AVR_AT90PWM2__" },
{ "at90pwm2b", ARCH_AVR4, "__AVR_AT90PWM2B__" },
@@ -254,13 +256,19 @@
{ "atmega649", ARCH_AVR5, "__AVR_ATmega649__" },
{ "atmega6490", ARCH_AVR5, "__AVR_ATmega6490__" },
{ "atmega16hva", ARCH_AVR5, "__AVR_ATmega16HVA__" },
+ { "atmega16hvb", ARCH_AVR5, "__AVR_ATmega16HVB__" },
+ { "atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__" },
{ "at90can32", ARCH_AVR5, "__AVR_AT90CAN32__" },
{ "at90can64", ARCH_AVR5, "__AVR_AT90CAN64__" },
{ "at90pwm216", ARCH_AVR5, "__AVR_AT90PWM216__" },
{ "at90pwm316", ARCH_AVR5, "__AVR_AT90PWM316__" },
+ { "atmega32c1", ARCH_AVR5, "__AVR_ATmega32C1__" },
+ { "atmega64c1", ARCH_AVR5, "__AVR_ATmega64C1__" },
{ "atmega32m1", ARCH_AVR5, "__AVR_ATmega32M1__" },
- { "atmega32c1", ARCH_AVR5, "__AVR_ATmega32C1__" },
+ { "atmega64m1", ARCH_AVR5, "__AVR_ATmega64M1__" },
+ { "atmega16u4", ARCH_AVR5, "__AVR_ATmega16U4__" },
{ "atmega32u4", ARCH_AVR5, "__AVR_ATmega32U4__" },
+ { "atmega32u6", ARCH_AVR5, "__AVR_ATmega32U6__" },
{ "at90usb646", ARCH_AVR5, "__AVR_AT90USB646__" },
{ "at90usb647", ARCH_AVR5, "__AVR_AT90USB647__" },
{ "at94k", ARCH_AVR5, "__AVR_AT94K__" },
Index: gcc/config/avr/t-avr
===================================================================
--- gcc/config/avr/t-avr (revision 141795)
+++ gcc/config/avr/t-avr (working copy)
@@ -73,6 +73,8 @@
mmcu?avr4=mmcu?atmega88 \
mmcu?avr4=mmcu?atmega88p \
mmcu?avr4=mmcu?atmega8hva \
+ mmcu?avr4=mmcu?atmega4hvd \
+ mmcu?avr4=mmcu?atmega8hvd \
mmcu?avr4=mmcu?at90pwm1 \
mmcu?avr4=mmcu?at90pwm2 \
mmcu?avr4=mmcu?at90pwm2b \
@@ -111,13 +113,19 @@
mmcu?avr5=mmcu?atmega649 \
mmcu?avr5=mmcu?atmega6490 \
mmcu?avr5=mmcu?atmega16hva \
+ mmcu?avr5=mmcu?atmega16hvb \
+ mmcu?avr5=mmcu?atmega32hvb \
mmcu?avr5=mmcu?at90can32 \
mmcu?avr5=mmcu?at90can64 \
mmcu?avr5=mmcu?at90pwm216 \
mmcu?avr5=mmcu?at90pwm316 \
mmcu?avr5=mmcu?atmega32c1 \
+ mmcu?avr5=mmcu?atmega64c1 \
mmcu?avr5=mmcu?atmega32m1 \
+ mmcu?avr5=mmcu?atmega64m1 \
+ mmcu?avr5=mmcu?atmega16u4 \
mmcu?avr5=mmcu?atmega32u4 \
+ mmcu?avr5=mmcu?atmega32u6 \
mmcu?avr5=mmcu?at90usb646 \
mmcu?avr5=mmcu?at90usb647 \
mmcu?avr5=mmcu?at94k \
Anatoliy.