Hat man die freie Auswahl, was den Controller-Typ betrifft, kann man sich auf die Typen beschränken, die auch Entwicklungstools für MacOS X bieten.
Berücksichtigt man die Liste der vom GCC unterstützen Controller, muss man nicht in einen kostenpflichtigen Compiler investieren.
All diese Überlegungen führen im Bereich der 8-Bit-Controller zu den beliebten AVR-Controllern von ATMEL, für die es eine Toolchain (Kette von Werkzeugen vom Quelltext bis zum Hex-File bzw. Download-Tool) gibt.
Eine erste zusammenfassende Erläuterung zu diesem Thema fand ich auf den Seiten von Mike Seemann, leider waren die Quellen nicht ganz aktuell.
Mit zunehmender Verbreitung der Mac-Computer interessieren sich auch mehr Entwickler für die AVR-Toolchain, so dass es inzwischen mehrere Projekte mit umfassenden Beschreibungen gibt.
Stellvertretend sollen hier die Seiten von anyma und OSX-AVR genannt werden.
Seit Ende 2007 gibt es von ObjectiveDevelopment das AVR MacPack, welches ab April 2009 unter der neuen Bezeichnung CrossPack-AVR angeboten wird. Dieses Paket setzt dort an, wo OSX-AVR begonnen hat, wird aber parallel zu WinAVR aktuell gehalten.
Es bietet sich an, Xcode als Entwicklungsumgebung zur Projektverwaltung, zum Editieren und zum Aufruf der Toolchain zu verwenden. In meiner Entwicklungstätigkeit habe ich mich an das Arbeiten mit Make-Files gewöhnt, so dass zum Starten der Toolchain nur geringe Anpassungen in den Projekt-Einstellungen notwendig sind.
In seinem Artikel "Embedded Development with Xcode" beschreibt Jim Schimpf einen anderen Weg der Xcode-Integration. Er geht von einem Standard-Tool als Projekt-Typ aus und ändert die Xcode-Regeln zur Behandlung der File-Typen *.c und *.o, indem er die entsprechenden Kommandozeilen des Make-Files einträgt. Dieses Verfahren erfordert an einigen Stellen etwas mehr Handarbeit, funktioniert aber auch.
Greift man auf das OSX-AVR-Projekt zurück, erhält man bereits vorbereitete Templates, die einen sofortigen Einstieg unter Xcode erlauben.
Ohne die Templates sind folgende Schritte zur Erzeugung eines AVR-Projekts erforderlich:
1. Über "New Project..." >> "EmptyProjekt" ein neues leeres Projekt anlegen
2. Doppelklick auf Projektnamen
zur Anzeige der Projekt-Info, im Build-Tab kontrollieren,
dass ZeroLink deaktiviert ist
3. Rechtsklick auf "Targets"
>> "Add" >> "New Target" >> "External
Target" zum Anlegen eines neuen Targets
4. Doppelklick auf neu
angelegtes Target zur Kontrolle der Build-Settings. Im
"Custom Build Command" muss der Pfad zum verwendeten make
eingetragen sein.
5. Über Rechtsklick auf den
Projektnamen >> "Add" >> "Existing Files..."
evtl. schon vorhandene Quellen zum Projekt hinzufügen
6. Makefile zum Projekt
hinzufügen und evtl. modifizieren.
Sind alle Tools korrekt installiert (Compilieren im
Terminal klappt schon), sollten jetzt "Clean" und "Build"
auch über die Symbole von Xcode funktionieren. Treten bei
der Übersetzung Fehler auf, erreicht man in gewohnter Weise
durch Klick auf den Fehler die jeweilige Stelle im
Quellcode.
Alle Regeln zur Übersetzung werden im Makefile festgelegt,
wodurch eine gewisse Portabilität des Projekts erhalten
bleibt.
Auf diese Weise ist die Erzeugung eines Hex-Files möglich,
was über ein Download-Tool in den Controller geschrieben
werden kann.
Als Download-Tool bietet sich AVRDUDE an. Mit der Version
avrdude-5.1 und der libusb-1.1.12 konnte ich einen AVRISP
MKII ansprechen und damit bisher ATmega128, ATmega16 und
ATtiny13 flashen. Zu beachten ist in diesem Zusammenhang
die Beschreibung von avrdude zur Übergabe des USB-Ports
(Teile der Serien-Nummer des AVRISP MKII).