Hallo,
sollte die Übersetzung der aktuellen avr-libc, Version 1.7.0, mit dem
avr-gcc, Version 4.5.1, fehlschlagen, hilft eine kleine Notlösung.
Bricht der Durchlauf mit einer Meldung ab, dass ein AVR-Typ unbekannt
ist, ist ein Blick in den configure-Lauf ratsam. Dort werden alle
bekannten AVR-Typen nacheinander abgeklopft um zu prüfen, ob sie dem
installierten avr-gcc bekannt sind. Leider meldet der avr-gcc dabei
keine Fehlschläge.
Im Quellenstamm des avr-gcc in ./config/avr/avr.c finden sich folgende
Zeilen (208 abwärts):
1 | if (!t->name)
|
2 | {
|
3 | fprintf (stderr, "unknown MCU '%s' specified\nKnown MCU names:\n",
|
4 | avr_mcu_name);
|
5 | for (t = avr_mcu_types; t->name; t++)
|
6 | fprintf (stderr," %s\n", t->name);
|
7 | }
|
Es erfolgt zwar eine Meldung auf die Fehlerausgabe, aber keine an den
Aufrufer (exit status, der nämlich wird vom configure benötigt).
Abhilfe schafft folgendes:
1 | if (!t->name)
|
2 | {
|
3 | fprintf (stderr, "unknown MCU '%s' specified\nKnown MCU names:\n",
|
4 | avr_mcu_name);
|
5 | for (t = avr_mcu_types; t->name; t++)
|
6 | fprintf (stderr," %s\n", t->name);
|
7 |
|
8 |
|
9 | /* Kamajii */
|
10 | error("Dead.");
|
11 | }
|
Üblich wäre es, einfach eine Fehlermeldung mit error() abzuliefern,
wobei error() das Programm dann mit einem Status ungleich 0 verlässt.
Bei der Ausgabe der bekannten AVR-Typen ist das wohl untergegangen.
Der Fehler ist wohl bekannt, aber noch nicht behoben:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45261
MfG Kama