Als Toolchain bietet Microchip das MPLAB XC8 Compiler Paket an, welches eine beschränkte Version des eigentlich freien GNU avr-gcc in Version 5.4.0 enthält. Folgende Optimierungen hat Microchip darin gesperrt, um sie als "pro" Version 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.
Die Hello World Vorlage zeigt, wie man unabhängig von einer Entwicklungsumgebung (IDE) ein Projekt mit Makefile erstellt und benutzt.
Die AVR C Bibliothek aus der GNU Toolchain ist hier dokumentiert. Zur Berechnung und Kontrolle von Fuses verwende ich den Engbedded Fuse Calculator online.
Wer unbedingt die neueste GNU Toolchain benutzen will, findet sie auf der Webseite von Zak, wobei diese nicht immer eine gute Wahl sind. Die älteren Versionen erzeugen oft effizienteren Code und sind gründlicher getestet.
Zum manuellen Testen von serieller Kommunikation empfehle ich das Hammer Terminal (hterm) oder Cutecom. Für Netzwerk-Verbindungen sind hingegen Netcat (nc), curl und Wireshark gut.
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. Für Netzwerk-Verbindungen sind hingegen Netcat, curl und Wireshark gut.
Als Texteditor empfehle ich unter Windows das Notepad++ oder Editpad Lite. Das Programmer Notepad aus dem WinAVR Paket ist auch nicht schlecht.
Wenn Windows jetzt trotzdem den neueren Treiber lädt, hat man zwei Möglichkeiten:
1) Den neueren Treiber entfernen
Dazu geht man im Gerätemanager mit der rechten Mastaste auf den Prolific Adapter und wählt "Gerät Deinstallieren".
Im nächsten Dialog soll "Treibersoftware für dieses Gerät löschen" aktiviert sein. Anschließend den USB Stecker
ziehen und wieder einstecken. Windows wird danach den verbleibenden alten Treiber laden.
2) Den richtigen (alten) Treiber zuweisen
Dazu geht man im Gerätemanager mit der rechten Mastaste auf den Prolific Adapter und wählt "Treiber
aktualisieren".
Im nächsten Dialog soll Windows den PC nach verfügbaren Treibern durchsuchen (Aus einer Liste von Gerätetreibern
auf dem Computer wählen).
Dort wählst du dann nicht den aktuellen Treiber aus, sondern den älteren mit Version 3.4.25.218 oder 3.3.2.105.
Dies muss man nach jedem Windows Upgrade wiederholen, sowie nach jedem Umstecken an einen anderen USB Anschluss.
Nachtrag: Inzwischen soll es wohl möglich sein, Treiber von automatischen Upgrades auszuschließen, siehe Anleitung auf giga.de.
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 die MPLAB X IDE oder das ältere Microchip Studio benutzen. Ansonsten empfehle ich Qt Creator.
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.
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.
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.
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.
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.
{ "configurations": [ { "name": "AVR", "includePath": [ "${workspaceFolder}/**" ], "defines": [ "__AVR_ATtiny13A__" ], "compilerPath": "/usr/bin/avr-gcc", "cStandard": "c11", "cppStandard": "c++11", "intelliSenseMode": "gcc-x86" } ], "version": 4 }
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.
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.
Ich bedanke mich bei Atmel für die besondere Genehmigung, das AVR Studio hier zum Download anzubieten.