Both sides previous revisionPrevious revisionNext revision | Previous revision |
de:examples:setup:linux [2010/08/31 15:31] – Wember | de:examples:setup:linux [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
---|
====== Die Softwareumgebung für Linux ====== | ====== Die Softwareumgebung für Linux ====== |
| |
Der folgende Guide beschreibt die Installation und de Benutzung des AVR Toolkit 9;10 Ubuntu OS. | Die folgende Anleitung beschreibt die Installation und de Benutzung des AVR Toolkit 9:10 Ubuntu OS. |
| |
===== Software Installation ===== | ===== Installation der Software ===== |
| |
Installier die folgende Software: | Installieren Sie die folgende Software: |
| |
**1. Linux software packages** | **1. Linux Softwarepakete** |
| |
* gcc-avr – GNU C-language Compiler für den AVR | * gcc-avr – GNU C-Compiler für den AVR |
* avrdude – Programm um die HEX-Dateien in den Controller zu laden. | * avrdude – Programm um die HEX-Dateien in den Controller zu laden. |
* avr-libc – C-Sprache libraries um Code für die AVR Plattform zu schreiben | * avr-libc – C-Code Bibliotheken, um Code für die AVR Plattform zu schreiben |
| |
Um die Packages zu installieren, nutze den Terminalbefehl: | Um die Pakete zu installieren, nutzen Sie folgenden Terminalbefehl: |
| |
sudo apt-get install gcc-avr avrdude avr-libc | sudo apt-get install gcc-avr avrdude avr-libc |
| |
oder Graphische Installationssoftware (wie das Ubuntu Softwarecenter oder Synaptic Packet manager). | oder die graphische Installationssoftware (wie das Ubuntu Softwarecenter oder Synaptic Packet manager). |
| |
**2. HomeLab library** | **2. HomeLab Bibliothek** |
| |
Die Bibliothek vereinfacht das schreiben von Programmcode, da "lower-level" Funktionen schon fertig sind. Besuche die HomeLab webseite und lade die Datei //Homelab library vX.X.run//, | Die Bibliothek vereinfacht das schreiben von Programmcode, da Grundfunktionen bereits fertig sind. Laden Sie sich die Datei //Homelab library vX.X.run// von der HomeLab Webseite herunter, wobei XX für die Versionsnummer steht. Zur Installation der Bibliothek führen Sie den folgenden Befehl aus: |
wobei XX für die Versionsnummer steht. Führe den folgenden Befehl aus um die Bibliothek zu installieren: | |
| |
sudo sh homelab_library_vX.X.run | sudo sh homelab_library_vX.X.run |
| |
Stelle sicher, dass die Installation erfolgreich war. | Stellen Sie sicher, dass die Installation erfolgreich war. |
| |
**3. KontrollerLab** | **3. KontrollerLab** |
| |
KontrollerLab ist eine IDE (//integrated development environment//) um AVR Software zu schreiben, kompilieren, debuggen und zu laden.Downloade die KontrollerLab software und speicher sie in einem Ordner (z.B., //~/Documents/AVR/KontrollerLab//). Führe folgenden Befehl im dem Ordern aus: | KontrollerLab ist eine IDE (//integrated development environment//) um zum schreiben, kompilieren, debuggen und laden von AVR Software. Laden Sie die KontrollerLab Software herunter und und speichern sie diese in einem Ordner (z.B. //~/Documents/AVR/KontrollerLab//). Führen sie den folgenden Befehl in dem Ordner aus: |
| |
sudo dpkg -i kontrollerlab*.deb | sudo dpkg -i kontrollerlab*.deb |
| |
Falls es Probleme mit Paketabhängikeiten gibt, führe den Befehl aus welcher die fehlende Pakete installiert: | Falls es Probleme mit Paketabhängigkeiten gibt, führen Sie den Befehl aus welcher die fehlende Pakete installiert: |
| |
apt-get install –f | apt-get install –f |
{{ :kit:001_kontrollerlab_installer.png?500 |}} | {{ :kit:001_kontrollerlab_installer.png?500 |}} |
| |
===== Den Programmierer anschliessen. ===== | ===== Das Programmiergerät anschließen. ===== |
| |
Schließ den Programmierer an den Computer an und schau ob der Computer ihn erkennt. Schreibe den Befehl "lsusb" ins Terminalfester und es sollte eine Liste der angeschlossenen USB Geräte ausgeben. Der Name des Programmieres ist: "Future Technology Devices International, Ltd FT 232 USB-Serial (UART) IC". | Schließen Sie das Programmiergerät an den Computer an und überprüfen Sie ob es vom Computer erkannt wird. Schreiben Sie den Befehl "lsusb" ins Terminalfester, woraufhin eine Liste der angeschlossenen USB Geräte ausgegeben werden sollte. Der Name des Programmiergerätes ist: "Future Technology Devices International, Ltd FT 232 USB-Serial (UART) IC". |
| |
{{ :kit:002_lsbusb.png?500 |}} | {{ :kit:002_lsbusb.png?500 |}} |
| |
Um den Port zu erhalten an welchem der Programmierer angeschlossen ist, überprüfe ///dev// mit dem Befehl //cd /dev// (setzt ///dev// als aktuellen Ordner) und //dir// (zeigt den Inhalt des Ordners an). Da der Programmieren ein USB-Serielles Interface ist, ist es als "ttyUSBx" benannt, wobei "x" den Index des Interface anzeigt. Wenn es kein anderes USB-Serielles Gerät gibt ist diese Nummer null. | Um den Port zu erhalten an welchem das Programmiergerät angeschlossen ist, überprüfen Sie ///dev// mit dem Befehl //cd /dev// (setzt ///dev// als aktuellen Ordner) und //dir// (zeigt den Inhalt des Ordners an). Da das Programmiergerät eine serielle USB Schnittstelle ist, ist es als "ttyUSBx" benannt, wobei "x" den Index der Schnittstelle anzeigt.Gibt es kein anderes serielles USB Gerät, ist diese Zahl null. |
{{ :kit:003_ttyusb0.png?500 |}} | {{ :kit:003_ttyusb0.png?500 |}} |
| |
===== Ein neues Projekt erstellen ===== | ===== Ein neues Projekt erstellen ===== |
| |
Um ein AVR Programm zu schreiben, muss ein Projekt erstellt werden, welches alle notwendigen Dateien enthält: Quellcode, Headerdateien, kompilierte Programme, usw.. Um die Prjekte klar voneinander zu trennen, sollte für jedes Projekt ein eigener Ordner erstellt werden. (Diese Option gibt es auch im Projekt Wizard) | Um ein AVR Programm zu schreiben, muss ein Projekt erstellt werden, welches alle notwendigen Dateien enthält: Quellcode, Headerdateien, kompilierte Programme, usw. Um die Projekte klar voneinander zu trennen, sollte für jedes Projekt ein eigener Ordner erstellt werden. (Diese Option gibt es auch im Project Wizard). |
| |
Folge diese Schritte um ein Projekt zu erstellen: | Folgende Schritte müssen durchlaufen werden um ein Projekt zu erstellen: |
| |
**1.** Öffne KontrollerLab (//Applications -> Programming -> KontrollerLab//) und starte ein neues Projekt im //File -> New -> New project// Menu . Ein Fenster öffnet sich wo der Projektort festgelegt werden muss. IN diesem beispiel ist der Ort //../Homelab/blinkingLED///. | **1.** Öffnen Sie KontrollerLab (//Applications -> Programming -> KontrollerLab//) und starten Sie ein neues Projekt //File -> New -> New project//. Ein Fenster öffnet sich in welchem der Projektort festgelegt werden muss. In diesem Beispiel ist das //../Homelab/blinkingLED///. |
| |
{{ :kit:004_new_project_kontrollerlab.png?500 |}} | {{ :kit:004_new_project_kontrollerlab.png?500 |}} |
| |
**2.** Das Projekt muss mindestens eine C-Datei haben in der der Programmcode geschrieben wird. Dateien können mit dem //File -> New -> New// Menu hinzugefügt werden. Im öffeneden Fenster wähle //C source// als Dateityp und gibt den Namen der Datei an. | **2.** Das Projekt muss mindestens eine C-Datei haben in welcher der Programmcode geschrieben wird. Dateien können mit dem //File -> New -> New// Menu hinzugefügt werden. In dem sich nun öffnenden Fenster wählen Sie //C source// als Dateityp und wählen Sie einen Namen für die Datei. |
| |
{{ :kit:005_new_file_kontrollerlab.png?500 |}} | {{ :kit:005_new_file_kontrollerlab.png?500 |}} |
| |
**3.** Danach muss das Projekt für das Homelab Kit konfiguriert werden. Im //Project -> Configure Project// menu öffne das Konfigurationsfenster und wähle den //Common// Tab. PCU Type sollte ATmega128 sein und die Taktfrequenz 14745600,0 Hz. Ausserdem die Namen der HEX und MAP Dateien sollte hier angegeben werden. Wenn man den //Set as default// Knopf drückt macht diese Einstellungen als Standardeinstellung für alle neuen Projekte. Dies sollte gemacht werden mann nur mit dem HomeLab AVR Microcontroller arbeitet. Da die HEX und MAP Dateien als Standard gespeichert werden, sollte man ihnen allgemeine Namen geben, z.B. "out.hex". | **3.** Anschließend muss das Projekt für das Homelab Kit konfiguriert werden. Öffnen Sie hierzu das Konfigurationsfenster unter //Project -> Configure Project// und wählen Sie //Common//. Der CPU Type sollte ATmega128 sein und die Taktfrequenz 14745600,0 Hz. Darüber hinaus sollten hier die Namen der HEX- und MAP- Dateien angegeben werden. Durch //Set as default// werden diese Einstellungen zur Standardeinstellung für alle neuen Projekte. Dieses ist sinnvoll, wenn nur mit dem HomeLab AVR Microcontroller gearbeitet wird. Da die HEX und MAP Dateien als Standard gespeichert werden, sollte man ihnen allgemeine Namen geben, z.B. "out.hex". |
| |
Beachte! da die HomeLab Library nicht mit im //Linker// Konfigurationstab eingefügt werden kann, muss der Befehl "-lhomelab" hinter dem namen der MAP Datei hinzugefügt werde. | Achtung! Da die HomeLab Library nicht im //Linker// Konfigurationstab eingefügt werden kann, muss der Befehl "-lhomelab" an den Namen der MAP-Datei angehängt werden. |
| |
{{ :kit:006_project_conf_common.png?500 |}} | {{ :kit:006_project_conf_common.png?500 |}} |
| |
Wende die Einstellungen im //Compiler// Tab so an wie auf dem folgenden Screenshot gezeigt. | Wenden Sie die Einstellungen im //Compiler// Tab an, wie auf dem folgenden Screenshot gezeigt. |
Bevor man //OK// drückt, sollte man die Compilerkonfiguration auch als Standard einstellen. | Bevor Sie auf //OK// klicken, sollte die Compilerkonfiguration ebenfalls als Standard gesetzt werden. |
| |
{{ :kit:007_project_conf_compiler.png?500 |}} | {{ :kit:007_project_conf_compiler.png?500 |}} |
| |
**4.** Konfigurier den Programmieren in dem man das Konfigurationfenster aus dem //Project -> Configure Programmer// Menu öffnet. Wähle "AVRDUDE" als Programmierer. Im "AVRDUDE" Tab setz den programmierer Typ //jtagmkI// und den Connection Port als ///dev/ttyUSBx// (wobei "x" der Portindex ist.). stelle diese Konfiguration ebenfalls als Standard ein. | **4.** Konfigurieren Sie das Programmiergerät durch öffnen von //Project -> Configure Programmer//. Wählen Sie "AVRDUDE" als Programmiergerät. Setzen Sie im "AVRDUDE" Tab den Typ des Programmiergerätes auf //jtagmkI// und den Anschlussport auf ///dev/ttyUSBx// (wobei "x" der Portindex ist.). Stellen Sie diese Konfiguration ebenfalls als Standard ein. |
| |
{{ :kit:008_programmer_conf.png?500 |}} | {{ :kit:008_programmer_conf.png?500 |}} |
| |
**5.** Zum Schluss, plazier die Fenster im KotnrollerLab da es so einfacher ist und bereite dich darauf vor, dein erstes Programm zu schreiben. | **5.** Ordnen Sie schließlich die Fenster im KontrollerLab so an, wie es angenehm ist und bereiten Sie sich darauf vor, das erste Programm zu schreiben. |
| |
{{ :kit:010_kontrollerlab.png?500 |}} | {{ :kit:010_kontrollerlab.png?500 |}} |
Nachdem die Konfiguration abgeschlossen ist, ist es Zeit zu programmieren. | Nachdem die Konfiguration abgeschlossen ist, ist es Zeit zu programmieren. |
| |
**1.** Schließ den Programmierer am Controllermodul an. Überprüfe nocheinmal pb der Programmierer richtig am JTAG Socket angeschlossen ist. Das Kabel muss vom Board zeigen (Siehe Bild). Nun schließ die Stromversorgung an und überprüfe ob die grüne LED leuchtet. | **1.** Schließen Sie das Programmiergerät am Controllermodul an. Überprüfen Sie noch einmal ob das Programmiergerät richtig am JTAG Anschluss angeschlossen ist. Das Kabel muss von der Platine weg zeigen (siehe Abbildung). Schließen Sie nun die Stromversorgung an und überprüfen ob die grüne LED leuchtet. |
| |
{{ :kit:kit_test.jpg?500 |}} | {{ :kit:kit_test.jpg?500 |}} |
| |
**2.** Schreib das folgende Programm in das Kontrollerlab Datei Editor Fenster und kompilier es: | **2.** Schreiben Sie das folgende Programm in das Dateieditor-Fenster des KontrollerLab und kompilieren Sie es: |
| |
<code c> | <code c> |
int main(void) | int main(void) |
{ | { |
// Set pin PB7 as an output | // Setze Pinn PB7 als output |
DDRB = 0x80; | DDRB = 0x80; |
| |
while (true) | while (true) |
{ | { |
// Inverting pin PB7 | // Invertiere PB7 |
PORTB ^= 0x80; | PORTB ^= 0x80; |
hw_delay_ms(500); | hw_delay_ms(500); |
[{{ :kit:011_compile_ignite.png?408 |Toolbar}}] | [{{ :kit:011_compile_ignite.png?408 |Toolbar}}] |
| |
Stelle sicher, dass das Outputfenster die Nachricht "File compiled successfully" zeigt. | Stellen Sie sicher, dass das Outputfenster die Nachricht "File compiled successfully" anzeigt. |
Falls die " Error(s) Occurred:" Nachricht erscheint, überprüfe den Programmcode auf Fehler. | Falls eine " Error(s) Occurred:" Nachricht erscheint, überprüfen Sie den Programmcode auf Fehler. |
| |
**3.** Um das Programm in den Controller zu laden drücke den //Ignite// Knopf. Nach dem es erfolgreich in den Controller geladen wurde, sollte "Project built and uploaded successfully" erscheinen. | **3.** Um das Programm in den Controller zu laden wählen Sie //Ignite//. Wurde es erfolgreich in den Controller geladen, sollte die Nachricht "Project built and uploaded successfully" erscheinen. |
| |
Falls alles richtig gemacht wurde sollte die rote LED auf dem Controller in 1-Sekunden Intervallen blinken. | Falls alles richtig gemacht wurde, sollte die rote LED auf dem Controller in 1-Sekunden Intervallen blinken. |
| |
===== Nutzen von floating-point Nummern ===== | ===== Nutzung von floating-point Variablen ===== |
| |
Manchmal wird in es in AVR Programmen notwendig Floating-Point Variablen zu nutzen. Um mit ihnen zu rechnen und sie mit printf-Typ Funktionen darzustellen, folgende Set-Upänderungen müssen in der Konfiguration des Projekts vorgenommen werden: | Manchmal ist in es in AVR Programmen notwendig, floating-point Variablen zu nutzen. Um mit ihnen zu rechnen und sie mit Funktionen vom Typ //printf// zu nutzen, müssen die folgenden Anpassungen in der Projektkonfiguration vorgenommen werden: |
| |
**1.** Öffne das //Project Configurations// Fenster und den //Linker// Tab. Check die erste Zeile in der //Linker flags// Liste (Siehe Bild). | **1.** Öffnen Sie //Project Configurations// sowie den Tab //Linker//. Überprüfen Sie die erste Zeile der Liste //Linker flags// (siehe Abbildung). |
| |
{{ :kit:012_linker_fprintf.png?500 |}} | {{ :kit:012_linker_fprintf.png?500 |}} |
| |
**2.** drücke //OK// und schließe das Fenster. | **2.** Klicken Sie auf //OK// und schließen Sie das Fenster. |
| |