42
Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

Embed Size (px)

Citation preview

Page 1: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

Vorlesung Mikrocontroller

Dipl.-Inf. Swen HabenbergerWS 09/10

Page 2: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

2

Inhalt Vorstellung Dozent Vorstellung Kursinhalt Prüfungsmodalitäten Organisatorisches Vorstellung NGW100

Page 3: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

3

Vorstellung Dozent Diplom-Informatiker Swen Habenberger Studium Universität Mannheim Hauptberuf: Softwareingenieur bei Fa.

Ramitek

Kontakt: [email protected]

Page 4: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

4

Firma Ramitek Sitz in Grünstadt/Weinstraße Ausgründung Universität Kaiserslautern Fachgebiete

Planung und Konstruktion Sensorik und Messtechnik Technische Software

Praktikumsplätze, Plätze für Seminar- und/oder Abschlussarbeiten

Page 5: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

5

Technische Software Programmierung in

C# Labview C++ mit MFC C Assembler

Page 6: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

6

PumpExpert (Software)

Page 7: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

7

Elektronik-Entwicklung

Page 8: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

8

Anlagensteuerung und -überwachung

Page 9: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

9

Vorstellung Kursinhalt Programmierung eines 32-Bit

Mikrocontrollers Programmiersprache C Entwicklungsumgebung: Linux Mikrocontrollerhersteller:

Atmel Chip: 32AP7000

Entwicklungsboard: NGW100

Page 10: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

10

2 teiliger Aufbau Vorlesung Theorie

Was unterscheidet einen 32-Bit von einem 16-Bit oder 8-Bit Prozessor?

Wie liest man Datenblätter? Entscheidungskriterien µC Betriebssystem vs. Native-Programmierung Wahl des richtigen Programmierwerkzeugs Atmel-spezifische Eigenheiten Hacking vs. Programmierung

Page 11: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

11

2 teiliger Aufbau Vorlesung Praxis

Programmierung in C Linuxprogrammierung

Anwendungen Kernel-Erweiterungen Kernel-Modifikationen

Socketprogrammierung Steuerung eines µC via Web-Interface Aufbau von Schaltungen

Page 12: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

12

Webseite http://www.habenberger-soft.de Oder SRH E-Learning-Plattform

Page 13: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

13

Prüfungsmodalitäten Klausur: 100 Minuten

Oder Seminararbeit inklusiver Präsentation

Beides Anfang/Mitte März

Page 14: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

14

Organisatorisches Jeder Teilnehmer soll die gleichen Chancen

haben, die selben Resultate zu erzielen. Festlegung Entwicklungsumgebung

VMWARE-Image Atmel

Page 15: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

15

Fragen?

Page 16: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

16

NGW100

Page 17: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

17

Atmel NGW100 Two ethernet connectors 32MB SDRAM 16MB on-board flash Expandable memory through SD or MMC memory cards USB connector JTAG connector for debugging or programming of flash Expansion connectors with 63 general purpose IO or

peripheal modules from AP7000 Power system and status LEDs Two user controllable LEDs Footprint for mictor-38 connector for NEXUS emulator

Page 18: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

18

Atmel NGW100 Informationen http://www.atmel.com/dyn/products/

tools_card.asp?tool_id=4102 http://www.avrfreaks.net/wiki/index.php/

Documentation:AVR32_General/ http://www.mikrocontroller.net/ http://www.roboternetz.de/ http://www.elektronik-projekt.de/ http://www.avr-praxis.de/ http:// test.avr32linux.org

Page 19: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

19

Projekte mit NGW100 http://mikrocontroller.jacob-pirna.de/

avr_webserver_projekte.html http://www.hoschid.ch/ngw100.html http://www.tec-project.de/ http://blog.muetze1.de/?p=370 http://ngw100.tiddlyspot.com/ http://www.youtube.com/watch?

v=7kV7XFPO_es

Page 20: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

20

Fragen?

Page 21: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

21

Benchmark Standardisierter Leistungsvergleich von

Prozessoren MIP - Meaningless Indicator of Performance Werbetechnischer Blödsinn

Meist Vergleich mit einer Referenzmaschine

Die relevante Leistung hängt von der tatsächlichen Anwendung ab

Page 22: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

22

Dhrystone Test Anfang der 80er Jahre entwickelt Referenzmaschine ist VAX11/780

1 VAXMIP = 0,5 MIPS Dhrystone Leistung: 1757 pro Sekunde

Wieviel MIPS sind 210 DMIPS? 210 * 0,5 = 105 MIPS 210 * 1757 * 0,5 = 184485 Dhrystones

Page 23: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

23

Dhrystone Test Test wurde zunächst in Fortran und Cobol

entwickelt Später dann nach Ada portiert Heute ist C der Standard Bestandteile:

Einfache Integer Operationen Stringoperationen Logische Entscheidungen Speicherzugriffe

Page 24: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

24

Whetstone Test Hauptsächlich Gleitkomma-Arithmetik Zusätzlich Zugriffe auf Arrays Einfache Integer-Arithmetik

Zunächst in Algol, später C und Fortran

Page 25: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

25

Linpack TOP500.org listet die schnellsten

bekannten Rechner der Welt Vergleich anhand von MFLOPs

MFLOP: Million Floating Point Operations per Second

Page 26: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

26

Benchmark Optimierte Compiler für das jeweilige

System verbessern die Performance Fast jeder Hersteller bietet optimierte

Varianten für seinen Prozessor an Schlechte Programmierung verlangsamt

die Performance Da ist Programmiererfahrung und Kenntnisse

des Systems gefragt Funktioniert nur wenn das System auch

läuft.

Page 27: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

27

Performance Prozessor besitzt keine Gleitkommaeinheit

bzw. numerischen CoProzessor Jede Gleitkommaoperation muss von der CPU

ausgeführt werden Mathematische Berechnung mit

Gleitkommazahlen führen zu einem dramatischen Geschwindigkeitseinbruch

Page 28: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

28

32bit RISC Was bedeutet die Werbeaussage

32-bit load/store RISC architecture RISC: Reduced Instruction Set Computing 32-Bit: ALU kann 4 Bytes gleichzeitig

verarbeiten

Page 29: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

29

RISC vs. CISC Complex Instruction Set Computer

Die meisten moderen Desktop CPUs sind CISC Prozessoren mit RISC-Coprozessoren und Zerlegung von CISC-Befehlen in RISC-Befehle (Pentium)

Reduced Instruction Set Computer Die meisten embedded-Systeme sind RISC-Prozessoren

Problemstellung zum Architekturdesign: Welche Maschinenbefehle sollen implementiert sein? Wie viele Register stehen zur Verfügung

Page 30: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

30

Überlegungen Maschinencode Jeder Befehl braucht einen eindeutigen

Operationcode (Opcode) Einfache Prozessoren besitzen meist schon 50-

60 Befehle (6 Bit) 15 Register entsprechen 4 Bits

Zugrunde liegende Architektur 1, 2 oder 3 Adressmaschinen

Page 31: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

31

Adressierungsart 1 –Adressmaschine

Der Akkumulator wird immer verwendet Mov R1 (Lädt Register 1 in den Akku) Add R2 (Addiert Register 2 zum Wert des Akku) Sto R1 (Speichert das Ergebnis in Register 1)

Page 32: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

32

Adressierungsart 2 –Adressmaschine

Mov R1, Akku (Lädt Register 1 in den Akku) Add R2, Akku (Addiert Register 2 zum Wert des

Akku) Sto R1, Akku (Speichert das Ergebnis in

Register 1) Add R2, R1 (R1=R1+R2) oder R2 = R1 + R2

Page 33: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

33

Adressierungsart 3 –Adressmaschine

Add R0, R1, R2 R0 = R1 + R2 oder R0 + R1 = R2

Page 34: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

34

32 Bit Byte = 8 Bit Upper Halfword = 16 Bit (2 höchtwertigen Bytes) Lower Halfword = 16 Bit (2 niederwertigsten

Bytes) Word = 32 Bit

Unterscheidung Big-Endian und Little-Endian

Page 35: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

35

Operationsmodus Direkt / Unmittelbar Register Indirekt Indiziert

Die Anzahl der Bits und der Operationsmodus erfordern weitere bits

Page 36: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

36

Befehlssatz Opcode Operationsmodus Operanden

Page 37: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

37

CISC Unterschiedliche Opcodelänge

Wichtige Befehle haben Länge von 2 Byte Unwichtige Befehle haben Länge 3 Byte

Extrabefehl zum erkennen von Befehl mit 3 Byte notwendig

Dekodierprozess langwierig Keine 3-Register Architekturen

Register sind teuer

Page 38: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

38

Microcode Hardwareinterpreter zwischen Dekoder

und Ausführeinheit Ein Befehl wird ggf. in kleine Einzelbefehle

zerlegt Dekrementiere Register und Springe falls

Ergbnis 0 ist Erfordert 1-10 Takte je nach komplexität des

Befehls

Page 39: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

39

Nutzung von Registern Manche Befehle ermöglichen die implizite

Nutzung von Registern Einsparung von Bits beim Befehlssatz in dem

bspw. Bei manchen Befehlen mit dem Akku gerechnet wird

Page 40: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

40

RISC Nur einfache Befehle Gleichlange Opcode für alle Befehle

Ermöglicht den Einsatz von Pipelines, da Bytes 2-4 immer mit Operanden versehen sind

Mehr Register Kein Hardwareinterpreter erforderlich

Page 41: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

41

Architektur AP7 Vom Ansatz RISC-Architektur Hat aber auch CISC-Befehle

SIMD-Befehle Befehle für CoProzessor

Je mehr Funktionalität auf dem Chip integriert ist, desto eher sind auch Ansätze von CISC zu erkennen

Page 42: Vorlesung Mikrocontroller Dipl.-Inf. Swen Habenberger WS 09/10

9. November 2009 Dipl.-Inf Swen Habenberger - VL Mikrocontroller

42

Fragen?