Datum: 16.05.2008 21:05
Hallo, ich versuche folgendes Programm zu compilieren:
#define F_CPU 4000000 // 4 MHz #include <avr/io.h> #include <util/delay.h> int main() { unsigned char i; DDRB = 0xff; PORTB = 0x00; while(1) { PORTB ^= 0xff; for (i=0; i<50; i++) _delay_ms( 10 ); } return 0; } |
Es kommt aber der Fehler: "internal compiler error: Illegal instruction" Frage: Was kann ich tun? ;-)
Datum: 16.05.2008 21:22
Beim GCC könnte man sich die temporären Dateien mal angucken. Die nötigen Flags ins Makefile und dann gucken wie weit er kommt.
Datum: 16.05.2008 21:23
??? Ich benutze AVR-Studio, falls das weiterhilft. Nach drücken von F7 kommt der Fehler.
Datum: 16.05.2008 21:23
Datum: 16.05.2008 21:24
Das Programm sieht ok aus.
>Es kommt aber der Fehler: "internal compiler error: Illegal instruction"
Den hab ich noch nie gesehen.
Für welchen uC ist das Programm ?
Datum: 16.05.2008 21:27
> Ich benutze AVR-Studio, falls das weiterhilft. Zusammen mit dem AVR-Studio hast du wahrscheinlich WinAVR installiert, das u.a. den GCC enthält. Welche Versionsnummer hat dieses?
Datum: 16.05.2008 21:31
Und was für einen PC mit welchem Betriebssystem benutzt du ? Hast du schon mal ein Programm ohne Fehler compiliert ?
Datum: 16.05.2008 21:35
PC: AMD 300 GHz mit Windows XP Ja, sobald ich das _delay_ms() rausnehme, funktioniert alles. So habe ich z.B. ein Programm geschrieben, was einfach nur den Port auf 0xff setzt. Auch avr/delay.h habe ich schon anstelle von util/delay.h implementiert. - Erfolglos!
Datum: 16.05.2008 22:07
> PC: AMD 300 GHz Alles klar: Du hast deinen PC ist zu sehr übertaktet ;-) Aber Spaß beiseite: Ich bin zwar kein WinAVR-Benutzer, aber es gab es in letzter Zeit wohl Versionen (200804xx mit xx<30 oder so), die nicht ganz so gut funktionierten und deswegen wieder zurückgezogen wurden. Vielleicht hast du so eine erwischt. Probier vielleicht einfach mal die aktuellste (20080512) oder eine davor (20080430) aus. Der da http://www.avrfreaks.net/index.php?name=PNphpBB2&a... hat wohl das gleiche Problem gehabt mit der Version 20080412 (gab es die überhaupt, oder meint er 20080402?). Allerdings schreibt er nicht, ob und wie er das Problem gelöst hat. Aber ein Update ist sicher kein Fehler.
Datum: 17.05.2008 12:01
Alles Klar! Ich habe jetzt einen anderen PC benutzt (mit wahrscheinlich auch einer anderen GCC- und AVR Studio Version) - und es funktioniert alles!! Besten Dank für die Tipps!!! ;-)
Datum: 17.05.2008 12:08
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel