Prozessoren fur mobile und¨ eingebettete Systeme II: Die ...

49
EMES: Eigenschaften mobiler und eingebetteter Systeme 00 1 0 1 1 1 1 0 1 0 0 1 0 01 11 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 10 0 1 0 0 1 11 0 1 0 0 1 0 1 0 1 0 11 0 0 0 1 0 1 1 1 1 0 10 0 1 0 01 11 0 1 0 0 1 0 1 0 1 0 11 0 0 0 1 0 1 1 1 1 0 10 0 1 0 01 11 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 10 0 1 0 0 1 11 0 1 0 0 1 0 10 1 0 11 0 0 0 1 0 1 1 1 1 0 10 0 1 0 01 11 0 1 0 0 1 0 1 0 1 0 11 0 0 0 1 0 11 1 1 0 10 0 1 0 0 111 0 1 0 0 1 0 1 0 1 0 1 1 0 00101111010010011101001010101 Prozessoren f ¨ ur mobile und eingebettete Systeme II: Die AVR-Architektur Dr. Felix Salfner, Dr. Siegmar Sommer Wintersemester 2009/2010

Transcript of Prozessoren fur mobile und¨ eingebettete Systeme II: Die ...

EMES: Eigenschaften mobiler und eingebetteter Systeme

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101

Prozessoren fur mobile undeingebettete Systeme II:

Die AVR-Architektur

Dr. Felix Salfner, Dr. Siegmar Sommer

Wintersemester 2009/2010

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Die AVR-Architektur

• Warum AVR (in dieser VL)?

– Angesiedelt im extremen Low-Cost-Bereich

– Interessante Controller-Familie mit hoher Skalierbarkeit

– Systematisch entwickelte Architektur

• Quellen fur diese VL:

– Online verfugbare Dokumente von Atmel: http://www.atmel.com

– Code- und Schaltungsbeispiele mit freundlicher Genehmigung von

http://www.mikrocontroller.net

1 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101 Was ist AVR?

• Eine RISC-Architektur

– Entwickelt in den 90ern von Alf Egil Bogen und Vegard Wollan am

Norwegian Institute of Technology

– Weiterentwickelt bei einer Tochterfirma von Atmel, die von den

beiden Entwicklern gegrundet wurde

• Eine Familie von Mikrocontrollern der Firma Atmel

– Basieren auf dem (weitgehend) gleichen Kern

– Unterschiedliche Speichergroßen

– Unterschiedliche I/O-Peripherie

• Herkunft und Bedeutung des Namen AVR sind nicht komplett bekannt

— Geruchte:

– Advanced Virtual RISC

– Alf Vegard RISC

2 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Parameter im Uberblick

• Harvard-Architektur

• RISC-Design (mit Einschrankungen)

• Load/Store

• 8 Bit Verarbeitungsbreite

• Wortadressierung (16 Bit)

• 32 Register (in den Speicher abgebildet auf 0x00 bis 0x1F)

• 2-Adress-Maschine

• 130 Instruktionen (ATmega)

• 16 Bit Befehlsformat, wenige Instruktionen brauchen 32 Bit

• Fast alle Instruktionen in einem Zyklus bei bis zu 20 MHz Takt

• Orthogonaler Befehlssatz

3 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Architektur I (Beispiel: AT90S8414)

4 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Architektur II (Beispiel: ATmega 8)

INTERNALOSCILLATOR

OSCILLATOR

W ATCHDOGTIMER

MCU CTRL.& TIMING

OSCILLATOR

TIMERS/COUNTERS

INTERRUPTUNIT

STACKPOINTER

EEPROM

SRAM

STATUSREGISTER

USART

PROGRAMCOUNTER

PROGRAMFLASH

INSTRUCTIONREGISTER

INSTRUCTIONDECODER

PROGRAMMINGLOGIC SPI

ADCINTERFACE

COMP.INTERFACE

PORTC DRIVERS/BUFFERS

PORTC DIGITAL INTERFACE

GENERALPURPOSEREGISTERS

X

Y

Z

ALU

+-

PORTB DRIVERS/BUFFERS

PORTB DIGITAL INTERFACE

PORTD DIGITAL INTERFACE

PORTD DRIVERS/BUFFERS

XTAL1

XTAL2

CONTROLLINES

VCC

GND

MUX &ADC

AGND

AREF

PC0 - PC6 PB0 - PB7

PD0 - PD7

AVR CPU

TWI

RESET

5 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101 Architektur III

• 32 Register (nachste Folie)

• Programmspeicher: 1 bis 256 KByte Flashspeicher auf dem Chip

Adressierbar: bis 8 MByte durch 22 Bit-Programmzahler

• Datenspeicher:

– 0 bis 8 KByte SRAM auf dem Chip

– 0 bis 4 KByte EEPROM auf dem Chip

• ALU:

– Registerbasierte Operationen in einem Zyklus

– Keinen direkten Zugriff auf Speicher

– Multiplikation optional (ATmega)

– Keine Division

• Keine Pipeline

6 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Architektur IV: Register und I/O

• R0-R31 als General Purpose Register mit einigen Ausnahmen:

– Benutzung der letzten 6 Register als 16-Bit Speicherpointer:

∗ X-Pointer: R26 und R27

∗ Y-Pointer: R28 und R29

∗ Z-Pointer: R30 und R31

– Befehle mit immediate Werten (6 Bit breit) konnen nur R16 bis

R31 nutzen

– add und sub auf 16-Bit-Worten sind nur mit R24-R31 moglich

• Breite Vielfalt an I/O integrierbar:

– 64 I/O-Ports (jeweils 8 Bit) direkt ansprechbar

– 192 weitere I/O-Ports uber Daten-Adressierung

7 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101 Befehlssatz I

• Orientiert an C als Hochsprache

• Compilerentwicklung noch vor Ende der Architekturentwicklung be-

gonnen

• Architektur in engem Kontakt zu Compilerbauern optimiert

– Adressierungsarten

– 3 Speicherpointer statt 2

– Direkte Adressierung statt seitenorientierter direkter Adressierung

– Subtraktionsbefehl statt Addition fur Immediate

– Nichtzerstorende Vergleichsoperation fur lange Operanden

• “Skip” Operationen — bedingte Ausfuhrung ahnlich ARM fur einige

Befehle

• Viele Befehle zur Manipulation von Bits

8 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101 Befehlssatz II

• Befehle zur Flußsteuerung

• Logische Befehle

• Befehle zur Bit-Manipulation

• Arithmetische Befehle

• Load/Store-Befehle

• Verschiedenes

9 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Befehlsformate und Adressierungsarten I

• Register direkt mit einem Register

OP

Registersatz

dst

00415

31

rdst

• Register direkt mit zwei Registern SRC und DST

Registersatz

dst

00415

31

RsrcOP Rdst

src

9 5

10 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101

Befehlsformate und AdressierungsartenII

• Direkte I/O-Adressierung

0015

OP

I/O Speicher

63

5Rsrc/Rdst Port

• Direkte Daten-Adressierung

Daten AdresseRsrc/RdstOP

15 0

Datenspeicher16192031

11 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101

Befehlsformate und AdressierungsartenIII

• Indirekte Datenadressierung

DatenspeicherY oder Z − Register

015

• Indirekte Datenadressierung mit Offset

OP qRsrc/Rdst

Datenspeicher

+

Y oder Z − Register015

051015 6

12 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101

Befehlsformate und AdressierungsartenIV

• Indirekte Datenadressierung mit Pra-Dekrement

• Indirekte Datenadressierung mit Post-Inkrement

• Konstante Adressierung auf dem Programmspeicher

• Programmspeicher mit Post-Inkrement

• Direkte Programmspeicher-Adressierung bei JMP und CALL (22 Bit)

• Indirekte Programmspeicher-Adressierung bei IJMP und ICALL (16

Bit)

• Relative Programmspeicher-Adressierung bei RJMP und RCALL (12

Bit)

13 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101 I/O-Ports

• Architektur erlaubt 256 I/O Ports, davon 64 direkt ansprechbar

• Modellabhangige Nutzung der Ports fur z.B.:

– Digitale I/O-Ports (jeder Pin entspricht einem Bit)

Umschaltbar in der Datenrichtung

– AD-Wandler mit 8 oder 10 Bit Auflosung

– RS232-Schnittstellen

– TWI (two wire interface)

– PWM-Ausgange (Pulsweitenmodulation)

– Realtime-Zahler

– Watchdog

– Analog Comparator

– Anbindung externen Speichers

– ISP (in system programming)

14 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Implementationen I

Atmel Corporation: Mehrere Baureihen

• AT90****

– Erste Serie, nicht mehr fur neue Designs empfohlen

• tinyAVR (ATtiny11 bis ATtiny45)

– Fur einfachste Anforderungen mit geringen Kosten

– Extrem kleine Bauform (ab 8 Pins)

• megaAVR (ATmega8 bis ATmega256)

– Kosteneffektive MCUs mit sehr vielen I/O-Pins

– Viel Speicher

– Flexible I/O-Moglichkeiten

– JTAG zur Programmierung

15 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Implementationen II

• LCD AVR (ATmega169, ATmega329, ATmega3290)

– Optimiert fur direkte Anbindung eines LCD-Displays und einer

Tastatur

• CAN AVR (AT90CAN128, AT90CAN64, AT90CAN32)

– Integrierter V2.0A/V2.0B CAN-Controller mit 15 Nachrichtenob-

jekten

– Optimierte Interrupt-Behandlung

16 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Beispiel: ATmega8 I

• 8 KB Flash, 512 Byte EEPROM, 1 KB SRAM

• 2 8-Bit-Zahler/Zeitgeber

• 1 16-Bit-Zahler/Zeitgeber

• Echtzeitzahler mit eigenem Oszillator

• 3 PWM-Kanale

• 6 oder 8 AD-Wandler mit 10 Bit Auflosung

• Byteorientiertes TWI

17 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Beispiel: ATmega8 II

• Programmierbarer Watchdog mit eigenem Oszillator

• Analog Comparator

• 5 Energiespar-Modi

• 23 programmierbare I/O-Leitungen

• 28- oder 32-poliges Gehause

• bis zu 8 MHz bei 2.7-5.5V (ATmega8L) oder 16 MHz be 4.5-5.5V

(ATmega8)

• Stromverbrauch bei 4 MHz und 25 Grad C:

– Aktiv: 3.6 mA

– Idle: 1.0 mA

– Power-down: 0.0005 mA

18 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Anwendung: Hardware I

• Gut geeignet fur nichtindustrielle Bastelprojekte:

– DIL-Gehause (bis ATmega32)

– Minimale Außenbeschaltung

– Einfach zu bauende Programmierschnittstellen

– Frei verfugbare Entwicklungstools

• Benotigt:

– Stromversorgung

– Reset-Beschaltung

– Optional Takt, falls kein interner Oszillator oder falls hohere Anfor-

derungen an zeitliche Auflosung

19 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Anwendung: Hardware II

Generelle Schaltung (am Beispiel des AT90S4433):

20 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Anwendung: Hardware III

Anbindung von einfachen I/O-Komponenten:

LED: Taster:

21 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Anwendung: Software

• Programmierung des chipinternen Flash uber ISP (in system program-

ming) mittels eines einfachen Parallel-Port-Adapters

• Frei verfugbare Software von Atmel zur Assembler-Programmierung:

AVR-Studio

• Kommerzielle Compiler fur Basic, C und weitere

• Opensource-Tools fur Assembler und C frei verfugbar

– avr-gcc fur Unix und Win32/Cygwin

– binutils (inklusive Assembler)

– Programmiertools fur den Download auf die MCU

22 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Code-Beispiel: I/O mit C (avr-gcc)

#include <avr/io.h>

int main(void){

DDRB = 0xff; // Port B als AusgangDDRD = 0; // Port D als Eingang

for (;;) {PORTB = PIND;

}}

23 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Code-Beispiel I/O mit Assembler

.include "4433def.inc" ;bzw. m8def.inc

ldi r16, 0xFFout DDRB, r16 ;Port B durch Ausgabe von 0xFF ins

;Richtungsregister DDRB als Ausgangldi r16, 0x00out DDRD, r16 ;Port D durch Ausgabe von 0x00 ins

;Richtungsregister DDRD als Eingangloop:in r16, PIND ;an Port D anliegende Werte (Taster)

;nach r16 einlesenout PORTB, r16 ;Inhalt von r16 an Port B ausgebenrjmp loop ;Sprung zu "loop:" -> Endlosschleife

24 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101 Eigene Projekte

• Kostengunstige Hardware bei hoher Leistung und einfacher Aufbau

erlauben auch komplexe Anwendungen mit vertretbarem Aufwand

(“Bastelprojekte”)

– Propeller-Clock und Verwandte

– Embedded Webserver

– CAN-Schaltungen

– Haus-Automatisierung

– und viele weitere (siehe Google)

25 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Projekte auf AVR-Basis I

26 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Projekte auf AVR-Basis I

27 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Projekte auf AVR-Basis II

28 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Projekte auf AVR-Basis II

29 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101

Projekte auf AVR-Basis III - AVRWebserver

30 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101AVR Webserver Projekt - Checkliste

• Hardware

– Mikrocontroller fur Webserver (ATmega32)

– NIC fur Netzzugang (RTL8029)

– Schnittstelle fur Debugging

– Stromversorgung etc ...

31 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101AVR Webserver Projekt - Hardware I

32 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101AVR Webserver Projekt - Hardware II

33 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101AVR Webserver Projekt - Hardware III

34 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101AVR Webserver Projekt - Hardware IV

35 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101AVR Webserver Projekt - Checkliste

• Software

– HTTP

– TCP

– IP

– ARP

– Treiber fur NIC

36 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101TCP/IP Stack vs. Realitat

• wohin mit...

– Betriebsystem?

– Anwendungsdaten?

– Programmstack?

37 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101TCP/IP Stack – Probleme

• AVR besitzt noch kein Betriebsystem

– keine Speicherverwaltung

– kein Multitasking

– kein Multithreading

– keine Hardwareabstraktion

• Extrem wenig freier Speicher fur Anwendungsprogramme

38 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101TCP/IP Stack – Losungsansatz

• Im Entwicklungsprozess muss der Bedarf der einzelnen Speicherberei-

che klar definiert sein

• Eigene Abstraktion der Netzwerkhardware

• Eigenes Speichermanagement fur Netzwerkfunktionalitat

– dynamisch verwalteter Speicherbereich

– optimiert fur Pufferspeicher (FIFO)

– automatisches Defragmentieren freien Speichers

– automatisches Reservieren neuer Ressourcen

– kooperatives Speichermodell

39 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101AVR Webserver - Dynamischer Speicher

40 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Deterministischer Speicherbedarf I

• Programmspeicher

– Compiler gibt Grosse vor

– Code-Optimierung vs. Code-Grosse

– Einschrankung der Funktionalitat vs. Standardkonformitat

• Arbeitsspeicher

– Verbrauch stark abhangig vom Programmablauf

– Statische Variablen, Heap, Stack

• Stack vs. Heap

– Paketpuffer befinden sich im Heap

– Begrenzung der Paketpuffer schafft mehr Platz fur den Stack

41 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Deterministischer Speicherbedarf II

• Wie begrenzen wir den Bedarf des Stacks?

• Codewiederholung statt Bundelung in Funktionen

– spart Arbeitsspeicher auf Kosten des Programmspeichers

• Minimale Interruptroutinen

• Dispatcher fur Funktionsaufrufe

– Wissen uber alle moglichen Systemzustande ermoglicht einen de-

terministischen Programmfluss

– halt Aufruftiefe gering

– garantiert maximale Aufruftiefe

42 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101AVR Webserver - Dispatcher

43 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101

AVR Webserver - StackspeicherDatenversand I

• Verschachtelte Funktionsaufrufe, hohe Aufruftiefe, hoher maximaler

Speicherverbrauch im Stack

44 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101

AVR Webserver - StackspeicherDatenversand II

• Wissen uber Programmfluss macht Funktionsaufrufe unnotig, mini-

male Aufruftiefe, minimaler maximaler Speicherverbrauch im Stack

45 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101

AVR Webserver - StackspeicherDatenversand III

• Optimierte Aufruftiefe, minimaler maximaler Speicherverbrauch im

Stack, minimaler Programmspeicherverbrauch

46 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Resourcen fur eigene Projekte

• In dieser Vorlesung

– AVR Pong - http://heim.ifi.uio.no/haakoh/avr/

– Propelleruhr - http://home.foni.net/˜akniesel/

– AVR Webserver - http://andreas-dittrich.eu , http://jonkowal.de

bzw Email an [email protected]

• Einstiegspunkt fur tiefergehendes Wissen (beispielsweise):

www.mikrocontroller.net

47 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK

00101

1110100100111010010101011000

101111

0100100111010010101011000101

11101001001110100101010110

00101111010010011101001010

10110

00101111

010010011101001010101100010111101001001110100

101010110 0010111101001001110100

10101011000101111010010011101001010101Bauteile besorgen v2.0

48 EMES: Eigenschaften mobiler und eingebetteter Systeme c© ROK