Startseite

AVR Entwicklungs­umgebungen

Um AVR Mikrocontroller zu programmieren, brauchst du im Prinzip nur drei Dinge:

Toolchains

XC8

Als Toolchain bietet Microchip das MPLAB XC8 Compiler Paket an, welches den eigentlich freien GNU avr-gcc in Version 5.4.0 von 2015 enthält. Darin hat Microchip aber einige Optimierungen entfernt, um sie als "pro" Version gegen extra Geld zu verkaufen: -O2, -O3, -Os, -flto, -fwhole-program, -fuse-linker-plugin. Außerdem fehlt bei der XC8 Toolchain das "make" Kommando. Mir fällt kein plausibles Argument ein, mit dem man diese Toolchain empfehlen könnte. Benutze lieber die originale freie Toolchain.

für Linux

Alle gängigen Linux Distributionen stellen die Toolchain über ihren Paketmanager bereit. Bei Debian und Ubuntu heißen die Pakete: make, avr-libc, gcc-avr und avrdude.

Wer unbedingt die neueste GNU Toolchain benutzen will, findet sie auf der Webseite von Zak, wobei diese nicht immer eine gute Wahl ist. Die älteren Versionen erzeugen oft kompakteren Code und sind gründlicher getestet.

Zum manuellen Testen von serieller Kommunikation empfehle ich dazu das Hammer Terminal (hterm) oder Cutecom.

Für Windows

Die GNU Toolchain wurde von Linux nach Windows portiert. Du hast die Wahl zwischen:

Falls Avrdude in deiner Toolchain fehlt oder zu alt ist, verwende diesen download. Die Dateien in dem ZIP Archiv kannst du einfach in das bin Verzeichnis deiner Toolchain kopieren.

Zum manuellen Testen von serieller Kommunikation empfehle ich das Hammer Terminal (hterm) oder Putty.

Integrierte Entwicklungsumgebungen

Für mittlere bis große Projekte eignen sich integrierte Entwicklungsumgebungen (kurz IDE) besser, als simple Text-Editoren. Sie machen während der Eingabe Vorschläge (was Tipparbeit erspart) und markieren Fehler schon vor dem Compilieren. Wenn man mit gedrückter Strg Taste auf einen Namen klickt, springt der Editor automatisch zu der relevanten Datei. Die meisten Entwicklungsumgebungen unterstützen Refactoring, zum Beispiel das Dateiübergreifende Ändern von Namen. Auch das Generieren von trivialem Code gehört bei manchen Entwicklungsumgebungen zum Funktionsumfang.

Viele Entwicklungsumgebungen stellen eine dialog-basierte Projekt-Konfiguration bereit, wo man einstellen kann, mit welchen Parametern der Compiler aufgerufen werden soll. Diese werden oft automatisch sinnvoll konfiguriert so dass man sicht direkt auf den C/C++ Quelltext konzentrieren kann. Derartige Projekte brauchen kein Makefile, allerdings hängen sie von dieser einen IDE ab, mit der sie erstellt wurden. Ich bevorzuge Makefiles (Beispiel) oder selbst geschriebene Build Scripte.

Wenn du einen In-Circuit Debugger verwenden möchtest, musst du je nach Gerät die MPLAB X IDE oder das ältere Microchip Studio benutzen. Es gibt keine "freie" Software mit Unterstützung für Debugger im AVR Umfeld.

Microchip MPLAB X

Diese Entwicklungsumgebung ist schon länger für die Programmierung von Mikrocontrollern von Microchip bekannt. Nachdem die Firma Atmel aufkaufte, hat sie die IDE entsprechend angepasst, so dass nun auch AVR Mikrocontroller unterstützt werden. Die IDE enthält einen Simulator für viele AVR Modelle, so dass man deren Programmierung ohne Mikrocontroller ein bisschen üben kann.

MPLAB X 6.05 basiert auf Netbeans und ist für Windows (ab Version 7), Linux und Mac OS verfügbar. Du brauchst einen PC mit mindestens 4 GB RAM und 6 GB freiem Speicherplatz. Die Toolchain muss separat installiert werden. Die Microchip MPLAB X IDE läuft deutlich flotter, als das Atmel/Microchip Studio.

Ich habe MPLAB X bisher nur kurz angetestet. Offenbar ist es nicht vorgesehen, bestehende Projekte mit Makefile zu importieren. Die IDE generiert immer ihr eigenes Makefile, das zwar an der Kommandozeile nutzbar ist, aber MPLAB X muss dennoch installiert sein. Abgesehen davon konnte ich meine bestehenden Quelltexte problemlos in ein leeres Projekt hinein kopieren und compilieren.

Die Anzeige der emulierten Register vom Simulator wurde im Menü Window/Debugging/ I/O View versteckt.

Wer ältere Entwicklungsumgebungen von Atmel gewöhnt ist, wird womöglich die Unterstützung seines Programmieradapters vermissen. Zum Debuggen empfiehlt sich der preisgünstige MPLAB Snap. Ansonsten kann man natürlich auch externe Software benutzen, um die *.hex Datei in den Mikrocontroller zu übertragen.

Microchip Studio

Das Microchip Studio (ehemals Atmel Studio 7) erfordert einen Computer mit Windows 7 (oder neuer) und 6 GB Speicherplatz. Ich empfehle eine 4-Kern CPU mit mindestens 8 GB RAM und SSD, sonst läuft es quälend langsam. Das Microchip Studio basiert auf Microsoft Visual Studio. Die IDE enthält einen Simulator für viele AVR Modelle, so dass man deren Programmierung auch ohne Mikrocontroller ein bisschen üben kann.

Seit der Übernahme durch Microchip enthält das Programm nicht mehr die freie GNU Toolchain, sondern die beschränkte XC8 Toolchain. Man kann die GNU Toolchain jedoch separat installieren und mit der IDE benutzen. Die optionale Komponente "Advanced Software Framework" wird normalerweise nicht benötigt, es sei denn man möchte die fertigen Programmbeispiele oder Libraries von Atmel verwenden.

Beim Microchip Studio ist es nicht vorgesehen, bestehende Projekte mit Makefile zu übernehmen. Du kannst aber ein neues Projekt anlegen und deine Quelltexte dann hinein kopieren. Im Solution Explorer (rechts oben) musst du alle Quelltext-Dateien hinzufügen, damit sie compiliert werden.

Wenn dein Projekt ein Makefile hat, klicke mit der rechten Maustaste auf den Projektnamen (die Zeile mit dem orangenem Symbol) und dann auf Properties. Aktiviere die Checkbox "Use External Makefile" und gebe darunter den Pfad zum Makefile ein.

Der Installer richtet im Startmenü den "Microchip Studio Command Prompt" ein, das ist eine cmd Shell, wo alle nötigen Umgebungsvariablen richtig gesetzt sind. In dieser Shell kann man Makefile-basierte Projekte mit dem make Befehl compilieren.

Das Microchip Studio wird nicht mehr weiter entwickelt, allerdings pflegt der Hersteller noch seine "Device Packs", um neue Mikrocontroller zu unterstützen.

AVR Studio

Das alte AVR Studio 4.19 zeichnet sich durch eine schlichte Anfänger-freundliche Bedienoberfläche mit geringer Codegröße aus. Selbst auf uralten Computern läuft es flott. Es enthält einen Assembler und Simulatoren für viele AVR Modelle, so dass man deren Programmierung auch ohne Mikrocontroller ein bisschen üben kann.

AVR Studio 4.19 läuft unter Windows XP und Windows 7 zuverlässig mit weniger als 1 GB RAM. Man kann es auch gut in einer virtuellen Maschine laufen lassen, z.B. mit VirtualBox.

Für die Programmierung in C oder C++ muss zusätzlich WinAVR 2010 installiert werden. Alternativ eignet sich die neuere Prebuilt Windows Toolchain 5.3.0, allerdings funktioniert damit der Debugger nicht zuverlässig.

In den Projekteinstellungen unter "Custom Options" musst du den Pfad zu avr-gcc.exe und make.exe angeben:

Wenn dein Projekt ein Makefile hat, stelle das in diesem Dialog weiter oben im Abschnitt "General" ein.

Im AVR Studio ist ein Programm zum Bedienen einiger Programmieradapter eingebettet. Der dazu mitgelieferte (Jungo) USB Treiber lässt sich ab Windows 8 nur mit deaktivierter "Treibersignatur" installieren. Folge dazu dieser Anleitung. Oder benutze ein anderes externes Programm.

Das Atmel Studio wird schon lange nicht mehr gefplegt. Ich bedanke mich bei Atmel für die Genehmigung, eine Kopie davon hier anbieten zu dürfen.

Visual Studio Code

Visual Studio Code (vscode) ist eine kostenlose Entwicklungsumgebung von Microsoft. In vielen Linux Distributionen ist sie als optionales Paket enthalten.

Zum Compilieren rufst du "make" im Terminalfenster auf, bzw. das Build-Script des Projektes.

Qt Creator

Qt Creator ist eine kostenlose IDE für C/C++ Projekte mit speziellen Features für das Qt Framework. Qt Creator hat von allen hier genannten IDEs die beste Quelltext-Analyse, was das Erkennen von potentiellen Fehlern betrifft. Qt Creator gibt es für Linux, Windows und Mac OS. Die IDE ist in C++ geschrieben, und läuft daher auf jedem Computer flott.

Du kannst dass bestehende Projekt über das Menü "Datei/Neu/Projekt importieren/Import eines existierenden Projekts" importieren. In der Datei "Projektname.files" kannst du angeben, welche Dateien du in Qt Creator bearbeiten willst.

In der Datei "Projektname.includes" gibst du alle Verzeichnisse an, wo die Header Dateien der C-Bibliotheken gesucht werden sollen. Zum Beispiel:

/usr/lib/avr/include

Definiere in der Datei "Projektname.config" ein Makro mit dem Typ des Mikrocontrollers. Die richtige Schreibweise findest du in der Datei avr/io.h. Zum Beispiel:

#define __AVR_ATtiny2313__

Zum Compilieren rufst du "make" im Terminalfenster auf.

NetBeans

NetBeans war primär für Java Anwendungen gedacht, hat aber auch einen guten C/C++ Editor als Plugin. Du musst vorher eine Java Runtime installieren. Im Menü Tools/Plugins kannst du das C/C++ Plugins nachinstallieren. Konfiguriere es so:

Dieses Bildschirmfoto zeigt die richtigen Einstellungen für Linux:

Anschließend kannst du das Mikrocontroller-Projekt über das Datei Menü von NetBeans öffnen:

Damit NetBeans die SFR Register (zum Beispiel PORTB) erkennt,

Ich habe diese Anleitung gefunden, wo erklärt wird, wie man den Editor von NetBeans benutzt.

Zum Compilieren rufst du "make" im Terminalfenster auf.

Eclipse

Eclipse war ebenfalls ursprünglich eine Entwicklungsumgebung für Java, unterstützt nun jedoch viele andere Sprachen. Eclipse fällt durch extrem viele Einstellmöglichkeiten und Plugins auf. Die Einarbeitungszeit ist deutlich länger, als bei den anderen Alternativen. Du musst vorher eine Java Runtime installieren.

Downloade die Eclipse IDE für C/C++ Entwickler oder installiere das C/C++ Plugin in eine bereits vorhandene Eclipse IDE. Importiere das Projekt über das Menü File/New/Makefile Projekt With Existing Code.

Klicke dann mit der Rechten Maustaste auf den Namen des soeben importierten Projektes, und dann auf Properties.

Zum Compilieren rufst du "make" im Terminalfenster auf.