Rumpus/Schnellstart

From Lochraster

Jump to: navigation, search

Contents

[edit] Schnellstart

In 30 Minuten zum ersten eigenen Programm

[edit] Die Entwicklungsumgebung installieren

Unter Debian oder Ubuntu Linux kann mit

aptitude install gcc-avr binutils-avr avr-libc avrdude

und unter Fedora mit

yum install avr-gcc avr-binutils avr-libc avrdude

die Entwicklungsumgebung installiert werden.

Eventuell muss udev noch angepasst werden (Dann sind keine rootrechte notwendig um per USB auf den Atmel zuzugreifen)

Für Ubuntu/Debian: Folgende Datei erstellen (für die Erstellung sind rootrechte nötig):/etc/udev/rules.d/60-avr-utils.rules:

   # atmel avrisp2 for avrdude
   ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", MODE="0660", GROUP="plugdev"
   
   # all software usb devices
   ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE="0660", GROUP="plugdev"
   ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="282e", MODE="0660", GROUP="plugdev"


Wer sich nicht sicher ist kann sich die Ubuntu LiveCD herunterladen und damit starten. Die CD enthält eine Ubunu Linux auf dem alle nötigen Tools vorhanden sind so dass man nichts installieren braucht.

Live-CD Download: http://www.lochraster.org/rumpus/data/ubuntu-8.04.01-avr-livecd-20080811.iso

[edit] Das Makefile

Jetzt legen wir uns ein Verzeichnis an in dem die Dateien für unser erstes Programm untergebracht werden. Als Beispiel könnten wir ein Verzeichnis namens rumpus mit einem Unterverteichnis programm anlegen.

In das Verzeichnis programm kopieren wir das folgende Makefile.

Datei herunterladen und unter dem namen Makefile speichern Makefile

Wer sich das Makefile ansieht findet dort einen Abschnitt:

# main application name (without .hex)
# eg 'test' when the main function is defined in 'test.c'
TARGET = test

Hier wird festgelegt wie die .c Datei heisst in der die main funktion steht.

[edit] Das erste Programm

Wie gerade erklärt wird unser erstes Programm den Namen test.c bekommen.

Die Aufgabe besteht darin eine LED blinken zu lassen. Folgender Programmcode bewerkstelligt dies.

test.c:

//io.h einbinden damit die ARV Register ueber Namen wie DDRD angesprochen werden koennen
#include <avr/io.h>
//delay.h einbinden damit die Funktion _delay_loop_2 bekannt ist
#include <util/delay.h>

void main(void) {
	/* PD7 als Ausgang setzen */
	DDRD = _BV(PD7); /* == 1<<7 == 128 */

	while(1) {
               // Wert von PD7 in PORTD Toggeln
		PORTD ^= _BV(PD7);

               // Warten
		uint8_t i;
		for (i = 0; i < 77; i++) {
			/* wait 4 * 65000 cycles */
			_delay_loop_2(65000);
		}
	}
}
  • Jetzt compiliert man das Programm duch die Eingabe von 'make'
  • Nachdem das Rumpus board über USB an den Rechner angeschlossen wurde, drückt man auf dem Rumpus Board die RESET Taste, wartet etwa 2 Sekunden, bis die L1 LED blinkt und gibt dann 'make install' ein um das Programm zu installieren.

Wenn alles geklappt hat beginnt die LED4 im Sekundentakt zu blinken.

[edit] Software zum testen

Unter [1] kann man sich den aktuellen Snapshot der Testsoftware als tar.gz Archiv herunterladen. Nach dem Entpacken findet man drei Verzeichnisse namens bootloader, rumpusbasp und rumpustest.

  • rumpustest enthält eine Testsoftware für das Board. Anhand dieser Software kann man sich ansehen wie die einzelnen Hardwarekomponeneten des Microcontrollers benutzt werden.
  • rumpusbasp enthält eine Software die das Rumpus Board in einen AVR Kompatiblen Programmieradapter verwandelt. Dann lassen sich mit dem Board AVR Microcontroller programmieren die noch keinen Bootloader besitzen.
  • bootloader enthält die .hex Datei des im Rumpus verwendeten Bootloaders. Diese Datei kann z.B. auf einen noch fabrikneuen Microcontroller geflashed werden um diesen mit einem Bootloader auszustatten.

[edit] Und weiter...

  • Ein Anfang ist nun gemacht. Jetzt sollte man sich etwas mehr mit der Dokumentation vertraut machen. Dazu empfehle ich das Datenblatt des ATMEGA168. Und den Schaltplan des Rumpus.
  • Die Dokumentation des U23 2008 des Chaos Computer Clubs Köln bietet ebenfalls einige Aufgaben und Lösungsbeispiele. Siehe U23 Doku des C4
  • Wer mal in einem etwas weiter fortgeschrittenen Sourcecode spicken möchte, dem empfehle ich die Firmware des Etherrape, die unter [2] zur Verfügung steht.