tutorium tech ii
Download
Skip this Video
Download Presentation
Tutorium Tech II

Loading in 2 Seconds...

play fullscreen
1 / 21

Tutorium Tech II - PowerPoint PPT Presentation


  • 80 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Tutorium Tech II' - habib


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]

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]

ad