Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009
Dipl.-Inf. Swen Habenberger - Microkontroller Überblick Projektentwicklung Basics Kommunikation mit NGW100 Konfiguration NGW100 Linux Wiederholung Hello World auf NGW100
Dipl.-Inf. Swen Habenberger - Microkontroller Gemeinsames Projekt bis Ende der Vorlesungszeit Steuerung eines Motors / mehrerer Motoren über TCP/IP Inklusive Fehlerprotokollierung auf SD- Karte Und Fernabfrage wie Web-Interface Als Linuxanwendung
Dipl.-Inf. Swen Habenberger - Microkontroller Projekt Milestones 1. Hello World auf dem NGW100 als Linuxanwendung 2. Kommunikation von PC mit NGW100 über TCP/IP 3. Fehlerprotokollierung 4. Fernabfrage 5. Motorenbeschaffung 6. Ansteuern der Motoren
Dipl.-Inf. Swen Habenberger - Microkontroller Kommunikation mit NGW Arten der Kommunikation mit NGW100 TCP/IP Serielle Schnittstelle 3 Arten der Datenübermittlung TCP/IP SD-Karte JTAG-Interface
Dipl.-Inf. Swen Habenberger - Microkontroller Kommunikation mit NGW100 Die Kommunikation über die Serielle Schnittstelle ist gegenüber Kommunikation mit TCP/IP bevorzugt Es kann bereits im Boot-Prozess mit U-Boot interagiert werden. IP-Konfiguration erfolgt erst später
Dipl.-Inf. Swen Habenberger - Microkontroller Kommunikation über TCP/IP Telnet FTP Tftp RCP SSH Scp, sftp HTTP https
Dipl.-Inf. Swen Habenberger - Microkontroller Telnet Übertragung ist unverschlüsselt Nur bedingt im Produktivsystem einsetzbar Für Entwicklunsgumgebungen einfach, da nur geringer Overhead Ist bei Windows und Linux-Betriebssystem standardmässig vorinstalliert Virtuelle Konsole auf dem Zielrechner Keine Dateiübertragung zum Zielrechner
Dipl.-Inf. Swen Habenberger - Microkontroller FTP Ermöglicht die Übertragung von Dateien zwischen 2 PC Unverschlüsselt, aber User/Passwort Kombination erforderlich Manchmal reicht anonymous-Zugang Auf NGW100: ProFTP
Dipl.-Inf. Swen Habenberger - Microkontroller TFTP: Trivial FTP: UDP anstelle von TCP Keine Verzeichnisanzeige Keine Authentifizierung und Verschlüsselung
Dipl.-Inf. Swen Habenberger - Microkontroller Remote Copie RCP kopiert Dateien über ein Netzwerk Einfacher als FTP Keine eigenen Befehle Reine Kopierfunktion Baut auf der Remote Shell auf Unsicher da nicht verschlüsselt
Dipl.-Inf. Swen Habenberger - Microkontroller Secure Shell (SSH) SecureShell übermittelt die Daten verschlüsselt Sichervariante von ftp: sftp rcp: scp telnet: ssh Auf NGW100: Dropbear Unter Windows: putty
Dipl.-Inf. Swen Habenberger - Microkontroller Dienstkonfiguration Alle diese Dienste haben eine Konfigurationsdatei /etc/ Alle diese Dienste haben ein Start und Stop-Skript /etc/init.d Dienst nicht starten: Datei mit S am Anfang umbennen
Dipl.-Inf. Swen Habenberger - Microkontroller Konfiguration IP-Adresse Die IP-Adress lässt sich unter /etc/network/interfaces konfigurieren Die Netzwerknamen lassen sich unter /etc/host* einstellen
Dipl.-Inf. Swen Habenberger - Microkontroller Busybox Enthält die wichtigsten Programme der GNU-fileutils und GNU-shellutils in einer abgespeckten Version Besteht aus einem Kernel, ein paar Einstellungen in etc und ein Paar Devices in /dev
Dipl.-Inf. Swen Habenberger - Microkontroller Wichtiges Hilfsprogramm VI: Der Texteditor :w schreiben :q verlassen A anfügen I einfügen ESC aktuellen Modus abbrechen X Zeichen löschen DD Zeilen löschen
Dipl.-Inf. Swen Habenberger - Microkontroller Wichtige Befehle ls / ls –l Ps Top Rm / rmdir /mkdir Cp / mv Cat Tail echo
Dipl.-Inf. Swen Habenberger - Microkontroller Weitere wichtige Dinge Shellskripte Ersparen Zeit bei häufigeren aufrufen der selben Befehle Ermöglichen das Starten/Stoppen von diensten Makefiles Erleichtern das Übersetzen/Installieren/Deinstallieren von Programmen beim Programmieren
Dipl.-Inf. Swen Habenberger - Microkontroller Kommunikation über Serielle Schnittstelle Hyperterminal MinCom Einstellungen BAUD 8N1 Und dann ist man schon auf der Konsole
Dipl.-Inf. Swen Habenberger - Microkontroller Einbinden der SD-Karte #mount –t vfat /dev/mmcblk0p1 /media Oder als Alternative Durchreichen: #Umount /dev/mmcblk0p1 #Modprobe g_file_storage file=/dev/mmcblk0 removable=1 benutzen #Rmmod g_file_storage
Dipl.-Inf. Swen Habenberger - Microkontroller Fragen?
Dipl.-Inf. Swen Habenberger - Microkontroller Programmieren Für eine Linuxanwendung muss als Ausgangssystem ein Linux vorhanden sein Cygwin würde theoretisch genügen, aber in der Praxis funktioniert es nicht Vmware-Image von Atmel benutzen (Ubuntu) mit avr32 als Benutzername und Passwort Linux installieren Eigenes Image-erstellen
Dipl.-Inf. Swen Habenberger - Microkontroller AVR32Studio Nettes Tool zum entwickeln der Software Baut auf Eclipse auf Benötigt Java zum laufen Benötigt AVR-GNU-Toolchain
Dipl.-Inf. Swen Habenberger - Microkontroller KDevelop u.ä. Als Alternative bietet sich noch KDevelop oder ähnliches an Hängt von der Umgebung ab. Meist ist es sinnvoll, sich seine eigenen Makefiles zu basteln und diese in ein Shellskript zu integrieren
Dipl.-Inf. Swen Habenberger - Microkontroller Hello World #include int main(int argc, char** argv){ fprintf(stdin, Hallo Welt\n); return 0; }
Dipl.-Inf. Swen Habenberger - Microkontroller Compiler Avr32-linux-gcc für Linuxanwendungen AVR32-gcc für Standaloneanwendungen #Avr32-linux-gcc –o HalloWelt.exe hallowelt.c
Dipl.-Inf. Swen Habenberger - Microkontroller Programmtest Kopieren auf SD-Karte Ausführen
Dipl.-Inf. Swen Habenberger - Microkontroller Warum fprintf und nicht printf? Stdin, stderr und stdout sind die Standardausgaben Printf(text); arbeitet intern wie fprintf(stdout, text); Eingabeumlenkung in Datei zu Protokollzwecken