Code::Blocks
Dieser Artikel beschreibt die Installation und den Umgang mit der Entwicklungsumgebung Code::Blocks und deren Unterstützung für AVR-Projekte.
Allgemeines zu Code::Blocks
Code::Blocks ist eine freie Entwicklungsumgebung, die neben der normalen C/C++-Entwicklung mit grafischen Designer auch Unterstützung für AVR-Projekte, Arduino-Projekte u.V.m. bietet. Sie ist für Linux, Windows und auch Mac OS (eingeschränkt) verfügbar und basiert auf dem freien Cross-Plattform-Toolkit wxWidgets.
Installation von Code::Blocks
Auf der Webseite des Projektes ist ein Release der Entwicklungsumgebung verfügbar. Dieses ist jedoch in der Regel nicht sehr aktuell. Es ist auf alle Fälle empfehlenswert, eines der in der Regel sehr stabilen und aktuellen "Nightly Builds" zu nutzen. In den folgenden Abschnitten ist beschrieben, wie man das Nightly Build für das jeweilige Betriebssystem erhalten kann.
Installation unter Windows
Voraussetzung für eine Nutzung von Code::Blocks für AVR-Projekte ist ein installiertes WinAVR.
Als erstes den aktuellen, stabilen Release von Code::Blocks herunterladen und installieren: codeblocks-10.05-setup.exe. Danach lohnt es sich, einen aktuellen Nightly Build zu verwenden.
Für Windows stellt das Code::Blocks-Projekt regelmäßig Nightly Builds im Forum des Projektes zur Verfügung.
Ein Nightly Build ist nach folgender Vorgehensweise zu installieren:
- Herunterladen des Progammpakets CB_XXXXXXX_revXXXX_win32.7z und Entpacken in das Programmverzeichnis von Code::Blocks.
- Herunterladen der zur Verfügung gestellten wxWidgets-DLL (wxmswXXu_gcc_cb_wxXXXX.7z) für Code::Blocks. Nach dem Entpacken ist die DLL direkt in das Programmverzeichnis von Code::Blocks zu kopieren.
- Herunterladen der zur Verfügung gestellten MinGW-DLL (mingwmXX_gccXX.7z) für Code::Blocks. Nach dem Entpacken ist die DLL direkt in das Programmverzeichnis von Code::Blocks zu kopieren.
Hinweis: Die "X" in den Paketnamen stehen für die jeweiligen Versionsnummern und sind abhängig von der konkreten Build-Version.
Nach der Installation der Entwicklungsumgebung ist unter "Settings->Compiler and Debugger" für den GNU AVR GCC Compiler der Pfad zu den Compiler-Binaries einzustellen. Diese Einstellung ist in dem Dialog unter dem Reiter "Toolchain executables" vorzunehmen. Dabei ist darauf zu achten, dass bei "Selected Compiler" der "GNU AVR GCC Compiler" eingestellt ist. Falls notwendig, können hier auch andere Standard-Einstellungen für diesen Compiler vorgenommen werden. Eine Abbildung des Dialogs befindet sich im Abschnitt "Installation unter Linux".
Hinweis: Bei installiertem AVR Studio 5 wird die AVR GCC Toolchain nicht automatisch gefunden, sondern muss manuell angegeben werden. Gesucht ist hier der komplette Pfad zum Ordner "[...]\AVR Studio 5.0\AVR Toolchain". (Zum Beispiel: "C:\Program Files (x86)\Atmel\AVR Studio 5.0\AVR Toolchain").
Installation unter Linux
Voraussetzungen
Voraussetzung für eine Nutzung von Code::Blocks für AVR-Projekte ist ein installierter avr-gcc.
Wenn verfügbar, kann Code::Blocks über das der Distribution eigene Paketverwaltungssystem installiert werden. Falls nicht, muss die Entwicklungsumgebung aus den Quellen erstellt werden.
Voraussetzung für die Erstellung aus den Quellen ist das Gui-Toolkit wxWidgets.
Zur Installation unter Ubuntu gibt man auf der Konsole ein:
$ sudo apt-get install libwxgtk3.0-dev wx-common
Installation aus den Quellen
Die aktuelle Version (nightly-build) wird per Kommandozeilen-Befehl:
$ svn checkout http://svn.code.sf.net/p/codeblocks/code/trunk
geholt (siehe auch SVN). Es wird ein Verzeichnis "trunk" angelegt, in dem sich die Quellen befinden. Eine Anleitung zur Installation befindet sich in der Datei "BUILD". Fall nicht bereits vorhanden, müssen folgende Programme und Bibliotheken installiert werden:
$ sudo apt-get install subversion $ sudo apt-get install libwxgtk3.0-dev wx-common $ sudo apt-get install libtool $ sudo apt-get install automake $ sudo apt-get install libgtk2.0-dev $ sudo apt-get install libhunspell-dev $ sudo apt-get install libgamin-dev $ sudo apt-get install libboost-dev
Nun sind in einer Konsole folgende Befehle einzugeben:
$ cd trunk $ ./bootstrap $ ./configure --with-contrib-plugins=all $ make $ sudo make install
Der letzte Befehl startet die Installation des Programms in die entsprechenden Verzeichnisse. Da hierfür root-Rechte erforderlich sind, wird dieses Kommando per sudo aufgerufen. Hierfür ist das root-Passwort erforderlich.
Nach der Installation der Entwicklungsumgebung ist unter "Settings->Compiler and Debugger" für den GNU AVR GCC Compiler der Pfad zu den Compiler-Binaries einzustellen. Diese Einstellung ist in dem Dialog unter dem Reiter "Toolchain executables" vorzunehmen. Dabei ist darauf zu achten, dass bei "Selected Compiler" der "GNU AVR GCC Compiler" eingestellt ist. Falls notwendig, können hier auch andere Standard-Einstellungen für diesen Compiler vorgenommen werden.
Erstellung eines AVR-Projekts
Die Erstellung eines AVR-Projektes ist sehr einfach:
- Starten des Dialogs zum Anlegen eines neuen Projektes mittels File->New->Project...
- Auswahl des Punktes "AVR Project" und Klick auf "Go". Die Vielzahl an verfügbaren Projekttypen kann vom Nutzer durch die Auswahl der Kategorie (oben im Dialog, hier "Embedded Systems") eingeschränkt werden.
- Überspringen der Begrüßungsseite.
- Im folgenden Dialog sind der Name des Projektes und der Pfad des Projektverzeichnisses anzugeben. Der Dialog zeigt in der letzten Zeile den resultierenden Pfad an.
- Die Einstellung der Ausgabe-Verzeichnisse für Release- und Debug-Konfigurationen sind im nächsten Dialog anzugeben.
- Im darauf folgenden Dialog sind vom Nutzer die Prozessor-spezifischen Einstellungen vorzunehmen. Damit wird die Erstellung eines neuen Projektes abgeschlossen. Insbesondere der Typ und die Taktrate sind hier anzugeben. Spätere Änderungen sind auch noch in den "Project Build Options" möglich.
Die mit dieser Entwicklungsumgebung erzeugten Programme bzw. .hex-Dateien können dann mittels AVRDude bzw. mit Hilfe der grafischen Oberfläche AVR-Burn-o_mat für AVRDude auf den Controller geflasht werden.
Einbinden von AVRDude
Zum flashen mit avrdude kann man auch entweder unter "Build-Options" bei Post-Build-Steps den avrdude-Befehl hinterlegen, oder, wenn man auf die "Clean"-Funktion verzichten kann, hinterlegt man in den "Build-Options" ein "$make load" bei den "Make-Commands".
AVRDude in Codeblocks als Tool einbinden
Dazu wird in Codeblocks unter "Tools" bei "Configure tools..." Avrdude als Tool hinzugefügt. Im anschließend geöffneten Fenster wird "Add" gewählt und ein neues Fenster öffnet sich. In diesem wird unter Name z.B. "avrdude (JTAG ICE)" eingetragen wird, unter Executable der Befehl also "avrdude", unter Parameters z.B. für Atmega 8 "-c avrispmkII -P /dev/ttyUSB0 -p m8 -Uflash:w:$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).hex" und unter Working directory "${PROJECT_DIR}" eingetragen. Weiters kann ausgewählt werden, ob das laufende Programm nun in einem eigenen Terminal oder im Codeblocks Log angezeigt werden soll bzw ganz im Hintergrund laufen soll. Nun lässt sich der AVR über Tools und der neuem Auswahl "avrdude (JTAG ICE)" programmieren.
Eventuell ist es noch notwendig, sich in die gruppe "dialout" einzuschreiben, da einem die Berechtigung für den AVR fehlen können. Dies ist einfach mit dem Befehl "sudo adduser <Eigener User> dialout" zu erreichten. Nach einem Neustart lässt sich der AVR beschreiben.
Links
- http://www.codeblocks.org/ - Seite des Projektes