Tutorium tech ii
This presentation is the property of its rightful owner.
Sponsored Links
1 / 21

Tutorium Tech II PowerPoint PPT Presentation


  • 55 Views
  • Uploaded on
  • Presentation posted in: General

Tutorium Tech II. Daniel Betz Wintersemester 2011/12. Includes Prozessor-Hardware Eigener, mehrfach verwendeter, Code, z.B. Makros Main-Methode Hardware initialisieren Endlosschleife mit eigentlichem Programm. Typischer Aufbau Embedded-Programm.

Download Presentation

Tutorium Tech II

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Tutorium tech ii

Tutorium Tech II

Daniel Betz

Wintersemester 2011/12


Typischer aufbau embedded programm

  • Includes

    • Prozessor-Hardware

    • Eigener, mehrfach verwendeter, Code, z.B. Makros

  • Main-Methode

    • Hardware initialisieren

    • Endlosschleife mit eigentlichem Programm

Typischer Aufbau Embedded-Programm

Daniel Betz • [email protected]


Zugriff auf register bzw adressen

#define T3CON (*((volatile unsignedshort*) 0xFF42))

Dereferenzierung, um „normale“ Variable zusimulieren

vorzeichenloserShort-Pointer

Speicheradresse

Variable kann sich „von alleine“ ändern

Zugriff auf Register bzw. Adressen

Daniel Betz • [email protected]


Bit maskierung

  • Setzen eines Bits durch OR

    • Maske mit 0 bis auf Zielbit(s)

  • Rücksetzen eines Bits durch AND

    • Maske mit 1 bis auf Zielbit(s)

  • Bit-Operationen in C

    • | – OR

    • &– AND

    • ~– NOT

  • Beispiele:

    • Set: T3CON |= T3R;

    • Set: T3CON = T3CON | T3R;

    • Reset: T3CON &= ~T3R;

    • Reset: T3CON = T3CON & ~T3R;

Bit-Maskierung

Daniel Betz • [email protected]


Einzelbit zugriff

  • In C möglich durch „union“-Typ

    • Mehrere Variablen unterschiedlicher Typen an einem Ort im Speicher

  • Beispiel:

    typedefunionbitreg {unsignedint reg;struct {unsignedintb0 : 1;…unsignedint b15 : 1;} bits;} bitreg_t;

  • Zugriff:

    ((volatile bitreg_t *) 0xFF42)->bits.b0

Einzelbit-Zugriff

Daniel Betz • [email protected]


C166 spezifische datentypen

  • bit

  • sbit

  • sfr

  • Wird im offiziellen Header verwendet

  • Ermöglicht Spezialsyntax für Bit-Zugriff mit ^

    • Adressierung von Bit 10:sfr MSW = 0xFFDE;sbit MSW_MC = MSW^10;

C166-spezifische Datentypen

Daniel Betz • [email protected]


C166 speicherbereiche

  • Auswahl bei Variablendeklaration möglich

    • unsignedintbdatamyvar;

  • bdata: Bit-Adressierbar, ^-Syntax möglich

  • idata: schneller Speicher

  • sdata: Systemspeicher

  • near: maximal 16k große Objekte, 16-Bit-Adressen

  • far: wie near, 24-Bit-Adressen

  • huge: wie far, maximal 64k-Objekte

  • xhuge: wie far, maximal 16M-Objekte

C166-Speicherbereiche

Daniel Betz • [email protected]


Interrupts

  • Unterbrechen den normalen Programmfluss um besondere Ereignisse zu bearbeiten

    • Beispiel: Ungültiger Speicherzugriff

  • Können auch durch Software ausgelöst werden

Interrupts

Daniel Betz • [email protected]


Beispiel interrupt control register

ILVL

T3IR

T3IE

GLVL

  • T3IR: Interrupt RequestDas Interrupt soll ausgelöst werden

  • T3IE: Interrupt EnableSteuert, ob das Interrupt ausgelöst werden kann

  • ILVL: PrioritätLegt die Priorität fest. „Wichtigere“ Interrupts können andere Interrupts unterbrechen

  • GLVL: GruppenprioritätWenn zwei Interrupts gleicher Priorität anstehen, entscheidet die Gruppenpriorität, welches ausgeführt wird

    • Wichtig: Die Gruppenpriorität entscheidet nicht über Unterbrechung anderer Interrupts.

Beispiel Interrupt Control Register

Daniel Betz • [email protected]


Aufgaben

Aufgaben

VHDL

Daniel Betz • [email protected]


Vhdl wissen ss10

  • Erläutern Sie den Unterschied des Verhaltens der beiden folgenden Wait-Befehlen

  • waituntilx='1' ory='1';

  • waiton x, y untilx='1' ory='1';

VHDL-WissenSS10

Daniel Betz • [email protected]


Vhdl strukturmodell ss10

  • Aufgabe: VHDL-Strukturmodell

    • Skizze

    • Modell

  • Gegeben: Folgende Bausteine

    • entitynand3 isport(a, b, c : IN std_logic;y :OUTstd_logic);end;

    • entityoder4 isport(a, b, c, d : IN std_logic;y :OUTstd_logic);end;

    • entityxor2 isport(a, b : IN std_logic;y :OUTstd_logic);end;

XOR

VHDL-StrukturmodellSS10

Daniel Betz • [email protected]


Aufgaben1

Aufgaben

Assembler

Daniel Betz • [email protected]


Adressen und ausf hrung ss10

  • Gegeben ist folgender ASM-Code für den C166:Zeig DW2Bit32 DW0x5566, 0xaaffFeld DB100, 0x45, 75, 103, 55MOV R3,Zeig;?1MOVR2,#Bit32 + 2;?2MOVRL0,[R3 + #Feld];?3ADD R3,#FeldMOV R1,[R2+]MOVRH0,[R3+];?4

  • Welche Adressierungsarten werden an den markierten Stellen benutzt?

  • Angenommen, die Adresse von Zeig sei 0x100. Was steht nach Programmende in R0 bis R3? In Hex!

Adressen und AusführungSS10

Daniel Betz • [email protected]


Flags nach addition ss10

  • Der C166 führt folgendes Programm aus:MOV R1,#0xBAFFADD R1,#0xCAFF

  • Welchen Wert haben die Flags (C, V, N, Z) nach der Ausführung und warum?

Flags nach AdditionSS10

Daniel Betz • [email protected]


Interrupts ss06

  • Folgende Interrupt-Quellen sind mit ICR-Eintrag gegeben

    • Timer 3 (3): 0x5C

    • Timer 5 (5): 0x51

    • Serial 1 Receive(R): 0x54

    • Serial 1 Transmit (T): 0x43

    • AD Overrun Error (A): 0x55

  • Das Hauptprogramm ist mit H abgekürzt

  • Aufgaben:

    • Bedeutung der ICR-Einträge angeben

    • Matrix ausfüllen

InterruptsSS06

Daniel Betz • [email protected]


T3 register ss07

  • Gegeben ist folgendes ASM-FragmentMOV T3CON,#5MOV T3IC,#0x57MOV T3,#6941BSET T3R

  • Was bedeutet der T3CON-Wert?

  • Nach welcher Zeit wird der Interrupt ausgelöst?

  • Bei Auslösen des T3-Interrupts wird gerade ein anderer Interrupt mit ICR-Eintrag 0x54 bearbeitet. Was passiert?

T3-RegisterSS07

Daniel Betz • [email protected]


Aufgaben2

Aufgaben

C

Daniel Betz • [email protected]


Bit maskierung ws07 08

  • Gegeben: Timer 3 ist in Betrieb

  • Gefragt: C-Code, ohne Bitbefehle, der folgendes macht

    • Timer stoppen

    • Vorteiler auf 64 setzen (011)

    • Timer starten

  • Natürlich dürfen nur die betroffenen Bits geändert werden

Bit-MaskierungWS07/08

Daniel Betz • [email protected]


Timer aktives warten ws09 10

  • Für ein Spielzeug-Polizeiauto sollen abwechselnd 440 Hz und 585 Hz je ¼ Sekunde ausgegeben werden

  • Verwendet wird ein C166 mit 20 MHz

  • Die ¼ Sekunde wird durch Active Waiting erzeugt

  • Aufgaben

    • Methode „Delay“ schreiben – für ¼ Sekunde sind etwa 2 Millionen Schleifendurchläufe nötig

    • Geeigneten Vorteiler finden und Reload-Werte für beide Frequenzen berechnen

    • Methode „T3_Init“ schreiben, die auch den ersten Ton ausgibt – Werte dokumentieren!

    • Hauptprogramm schreiben

Timer& aktives WartenWS09/10

Daniel Betz • [email protected]


Danke f r die aufmerksamkeit

Danke für die Aufmerksamkeit

Bis nächste Woche!

Daniel Betz • [email protected]


  • Login