C-Programmierung mit AVR-GCC/ Was tun, wenn's nicht "klappt"?



Diese Seite basiert auf dem Text, der vom mikrocontroller.net/articles/AVR-GCC-Tutorial#Was_tun,_wenn's_nicht_klappt? übernommen wurde. Dieser Text steht unter der Creative Commons Lizenz BY-SA, die nur die Namensnennung erforderlich macht. Die Liste aller Autoren findet man in der Versionsgeschichte des AVR-GCC-Tutorials.

Wir werden immer wieder an den Punkt kommen, wo etwas nicht so funktioniert, wie wir uns das vorgestellt haben. Diese Seite soll dabei helfen auf einige Stolpersteine hinzuweisen, die bei der Programmierung mit AVR-GCC auftreten können.

  • Finde heraus, ob es tatsächlich ein avr(-gcc) spezifisches Problem ist oder nur die eigenen C-Kenntnisse einer Auffrischung bedürfen. Allgemeine C-Fragen kannst du eventuell "beim freundlichen Programmierer zwei Büro-, Zimmer- oder Haustüren weiter" loswerden. Ansonsten: C-Programmierung-Buch lesen.
  • Die Dokumentation der avr-libc lesen, vor allem (aber nicht nur) den Abschnitt Related Pages/Frequently Asked Questions = Oft gestellte Fragen (und Antworten dazu). Z.Zt leider nur in englischer Sprache verfügbar.
  • Den Artikel AVR-GCC auf www.mikrocontroller.net lesen.
  • Das avr-gcc-Forum bei avrfreaks nach vergleichbaren Problemen absuchen.
  • Nach Beispielcode suchen. Vor allem im Projects-Bereich von AVRFREAKS (anmelden).
  • Google oder yahoo befragen schadet nie.
  • Bei Problemen mit der Ansteuerung interner AVR-Funktionen mit C-Code: das Datenblatt des Controllers lesen (ganz und am Besten zweimal). Datenblätter sind auf den Atmel Webseiten als pdf-Dateien verfügbar. Das komplette Datenblatt (complete) und nicht die Kurzfassung (summary) verwenden.
  • Die Beispieleprogramme im AVR-Tutorial sind zwar in AVR-Assembler verfasst, Erläuterungen und Vorgehensweisen sind aber auch auf C-Programme übertragbar.
  • Einen Beitrag in eines der Foren oder eine Mail an die Mailing-Liste schreiben. Dabei möglichst viel Information geben: Controller, Compilerversion, genutzte Bibliotheken, Ausschnitte aus dem Quellcode oder besser ein Testprojekt mit allen notwendigen Dateien, um das Problem nachzuvollziehen, sowie genaue Fehlermeldungen bzw. Beschreibung des Fehlverhaltens. Bei Ansteuerung externer Geräte die Beschaltung beschreiben oder skizzieren (z. B. mit Andys ASCII Circuit). Siehe dazu auch: "Wie man Fragen richtig stellt".

Spätestens beim letzten Punkt sollte das Problem gelöst werden, da die Schilderungen Anderer manchmal doch die Augen öffnen können. Die Community ist bei Fragen doch sehr hilfsbereit.