Toggle search
Search
Toggle menu
notifications
Toggle personal menu
Editing
C++ AVR
(section)
From Chaosdorf Wiki
Views
Read
Edit with form
Edit
Edit source
View history
associated-pages
Page
Discussion
More actions
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Kurzanleitung für Entwicklungsumgebung unter Debian GNU/Linux == === Benötigte Hardware === # Mikrocontroller: -- to be done -- # Programmieradapter: -- to be done -- === Benötigte Softwarepakete === # '''Editor''': Hier kann jede(r) seinen/ihren Lieblingseditor verwenden. Wichtig ist nur, daß damit der Text des Quellcodes geschrieben und gespeichert werden kann. Es kann aber auch eine mehr oder weniger ausgewachsene Entwicklungsumgebung (IDE) verwendet werden, die z.T. noch Debugger u.v.m. enthält. Für erste Gehversuche ist das aber m.E. overkill und führt eher zu Verwirrung, da man sich zunächst mit der Bedienung der IDE auseinander setzen muß. Einen Kompromiß stellt evtl. ein Editor dar, der nützliche Zusatzfeatures wie z.B. Syntaxhighlighting enthält, wie z.B. Geany [http://packages.debian.org/squeeze/geany]. # '''gcc-avr''': Dies ist der (portable) GNU C Compiler, der mehrere Sprachen unterstützt. Dieses Paket bietet Unterstützung für C. # '''avr-libc''': Standardbibliothek, welche zur Entwicklung von C-Programmen für den Atmel AVR Microcontroller benutzt wird. Dieses Paket enthält die statischen Bibliotheken sowie die nötigen Headerdateien. # '''make''': GNU Make ist ein Dienstprogramm, das die Erzeugung von ausführbaren und anderen Dateien aus Quelltexten steuert. Es bestimmt selbstständig, welche Teile eines großen Programms (erneut) erstellt werden müssen und führt die dafür erforderlichen Befehle aus. Make ist nicht auf ausführbare Programme beschränkt. Es lässt sich für jede Aufgabenstellung, bei der eine Reihe von Dateien aus anderen Dateien aufgrund von Abhängigkeiten und Verarbeitungsregeln erzeugt werden müssen, gebrauchen. In der Tat ist es ein Allzweckwerkzeug für die Auflösung von Abhängigkeiten. Das Programm benötigt für einen ''makefile'', der auch so heißen muß. Diese Datei muß im Suchpfad vorhanden sein, am einfachsten legt man sie im Arbeitsverzeichnis des aktuellen AVR-Projekts an. Es gibt fertige makefiles, die als Vorlage dienen können und nur wenig angepasst zu werden brauchen. # '''avrdude''' und '''avrdude-doc''': AVRDUDE ist ein Open-Source-Werkzeug für Download, Upload und Manipulation von ROM- und EEPROM-Inhalt der AVR-Mikrocontroller mit Hilfe der ISP-Technik. ISP steht für In-System-Programmierung. Dieses Programmiertool wird durch ''make'' aufgerufen und überträgt den kompilierten Maschinencode in den Mikrocontroller. Dazu muß der natürlich über einen Programmieradapter mit dem Rechner verbunden sein. Einige andere Pakete könnten später noch nützlich sein, werden aber am Anfang nicht unbedingt benötigt: * '''avrp''': Avrp ist ein FLASH/EEPROM-Programmierer für Atmels 8-bit-Mikrocontroller-Familie AVR. Er kann außerdem die Mikrocontroller der Atmel-AT89-Reihe programmieren. Er unterstützt mindestens vier verschiedene Programmiergeräte einschließlich Atmels eigenem AVR-Entwicklungs-Board und In-Circuit-Programmierung. * '''binutils-avr''': The programs in this package are used to manipulate binary and object files that may have been created for Atmel's AVR architecture. This package is primarily for AVR developers and cross-compilers and is not needed by normal users or developers. * '''gdb-avr: source-level debugger * '''simulavr''': Simulator * '''avr-evtd''': ARV-Watchdog-Daemon für Linkstation/Kurobox === Progamm erstellen === Mit dem Editor ein C-Programm schreiben, als Test kann das ''flash1.c'' im Listing weiter unten dienen, das eine LED zum Blinken bringt. Die Datei muß die Endung .c haben. Beispielcode flash1.c (freundlicherweise von penma zur Verfügung gestellt) <pre> #include <avr/io.h> #include <stdlib.h> int main (void) { uint32_t cnt = 0; DDRD = (1 << PD5) | (1 << PD6); while (1) { cnt++; cnt &= (1 << 15) - 1; if (cnt & (1 << 14)) { PORTD = 1 << PD5; } else { PORTD = 0 << PD5; } } return 0; } </pre> === Compilieren === Das erfolgt durch Aufruf des Programms ''make''. Es benötigt den makefile, der im Pfad zu finden sein muß, am besten im Arbeitsverzeichnis. <pre> "make TARGET=flash1" Mit TARGET wird der Name des Programms angegeben </pre> === Übertragen des Hexfiles in den Controller === Dies geschieht auch durch Aufruf des makefile. Damit wird avrdude aufgerufen, der dann die Hardware des Programmieradapter ansteuert und darüber die Daten in den AVR überträgt. <pre> make program TARGET=flash1 </pre>
Summary:
Please note that all contributions to Chaosdorf Wiki are considered to be released under the Attribution 3.0 Unported (see
Chaosdorf Wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)