28
Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Embed Size (px)

Citation preview

Page 1: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Programmierung NGW100

Dipl.-Inf. Swen Habenberger

2. Februar 2009

Page 2: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

202.02.2009

Überblick

Projektentwicklung Basics

Kommunikation mit NGW100Konfiguration NGW100

Linux Wiederholung

Hello World auf NGW100

Page 3: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

302.02.2009

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

Page 4: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

402.02.2009

Projekt Milestones

1. Hello World auf dem NGW100 als Linuxanwendung

2. Kommunikation von PC mit NGW100 über TCP/IP

3. Fehlerprotokollierung4. Fernabfrage5. Motorenbeschaffung6. Ansteuern der Motoren

Page 5: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

502.02.2009

Kommunikation mit NGW 100

2 Arten der Kommunikation mit NGW100TCP/IPSerielle Schnittstelle

3 Arten der DatenübermittlungTCP/IPSD-KarteJTAG-Interface

Page 6: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

602.02.2009

Kommunikation mit NGW100

Die Kommunikation über die Serielle Schnittstelle ist gegenüber Kommunikation mit TCP/IP bevorzugtEs kann bereits im Boot-Prozess mit U-Boot

interagiert werden. IP-Konfiguration erfolgt erst später

Page 7: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

702.02.2009

Kommunikation über TCP/IP

Telnet FTP

Tftp

RCP SSH

Scp, sftp

HTTP https

Page 8: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

802.02.2009

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

Page 9: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

902.02.2009

FTP

Ermöglicht die Übertragung von Dateien zwischen 2 PC

Unverschlüsselt, aber User/Passwort Kombination erforderlichManchmal reicht anonymous-Zugang

Auf NGW100: ProFTP

Page 10: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1002.02.2009

TFTP: Trivial FTP:

UDP anstelle von TCP Keine Verzeichnisanzeige Keine Authentifizierung und

Verschlüsselung

Page 11: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1102.02.2009

Remote Copie

RCP kopiert Dateien über ein Netzwerk Einfacher als FTP

Keine eigenen BefehleReine Kopierfunktion

Baut auf der Remote Shell auf Unsicher da nicht verschlüsselt

Page 12: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1202.02.2009

Secure Shell (SSH)

SecureShell übermittelt die Daten verschlüsselt Sichervariante von

ftp: sftp rcp: scp telnet: ssh

Auf NGW100: Dropbear Unter Windows: putty

Page 13: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1302.02.2009

Dienstkonfiguration

Alle diese Dienste haben eine Konfigurationsdatei /etc/

Alle diese Dienste haben ein Start und Stop-Skript /etc/init.dDienst nicht starten: Datei mit S am Anfang

umbennen

Page 14: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1402.02.2009

Konfiguration IP-Adresse

Die IP-Adress lässt sich unter /etc/network/interfaces konfigurieren

Die Netzwerknamen lassen sich unter /etc/host* einstellen

Page 15: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1502.02.2009

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

Page 16: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1602.02.2009

Wichtiges Hilfsprogramm

VI: Der Texteditor :w schreiben :q verlassenA anfügen I einfügenESC aktuellen Modus abbrechenX Zeichen löschenDD Zeilen löschen

Page 17: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1702.02.2009

Wichtige Befehle

ls / ls –l Ps Top Rm / rmdir /mkdir Cp / mv Cat Tail echo

Page 18: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1802.02.2009

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

Page 19: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

1902.02.2009

Kommunikation über Serielle Schnittstelle Hyperterminal MinCom

Einstellungen 115200 BAUD 8N1

Und dann ist man schon auf der Konsole

Page 20: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2002.02.2009

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

Page 21: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2102.02.2009

Fragen?

Page 22: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2202.02.2009

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

Page 23: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2302.02.2009

AVR32Studio

Nettes Tool zum entwickeln der Software Baut auf Eclipse auf

Benötigt Java zum laufen Benötigt AVR-GNU-Toolchain

Page 24: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2402.02.2009

KDevelop u.ä.

Als Alternative bietet sich noch KDevelop oder ähnliches anHängt von der Umgebung ab.

Meist ist es sinnvoll, sich seine eigenen Makefiles zu basteln und diese in ein Shellskript zu integrieren

Page 25: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2502.02.2009

Hello World

#include <stdio.h>

int main(int argc, char** argv){

fprintf(stdin, „Hallo Welt\n“);

return 0;

}

Page 26: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2602.02.2009

Compiler

Avr32-linux-gcc für Linuxanwendungen AVR32-gcc für Standaloneanwendungen

#Avr32-linux-gcc –o HalloWelt.exe hallowelt.c

Page 27: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2702.02.2009

Programmtest

Kopieren auf SD-Karte Ausführen

Page 28: Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009

Dipl.-Inf. Swen Habenberger - Microkontroller

2802.02.2009

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