OOStuBS - Technische Informatik II (TI-II)  2.4
Öffentliche Typen | Öffentliche Methoden | Private Attribute | Aufstellung aller Elemente
PIC Klassenreferenz

Treiber für den PIC (Programmable Interrupt Controller) Mehr ...

#include <pic.h>

Klassendiagramm für PIC:
Inheritance graph
[Legende]
Zusammengehörigkeiten von PIC:
Collaboration graph
[Legende]

Öffentliche Typen

enum  Interrupts {
  timer = 32, keyboard = 33, pic2 = 34, serial2 = 35,
  serial1 = 36, soundcard = 37, floppy = 38, parallelport = 39,
  rtc = 40, misc = 41, ata4 = 42, ata3 = 43,
  secondps2 = 44, fpu = 45, ata1 = 46, ata2 = 47
}
 externe Interruptquellen Mehr ...

Öffentliche Methoden

void ack (Interrupts interrupt)
 sendet ein "Acknowledgement" eines ausstehenden Interrupts
void allow (Interrupts interrupt)
 Erlaubt einen speziellen Interrupt von einem Peripheriegerät.
void forbid (Interrupts interrupt)
 verbietet einen speziellen Interrupt eines Peripheriegerätes
 PIC ()
 Standardkonstruktor.
 ~PIC ()
 Destructor globally disabling interrupts.

Private Attribute

IO_Port ctrl_1
IO_Port ctrl_2
IO_Port mask_1
IO_Port mask_2

Ausführliche Beschreibung

Treiber für den PIC (Programmable Interrupt Controller)

Der PIC (programmierbarer Interruptkontroller) ermöglicht es dem System bestimmte Interrupts bzw. unterbrechungen zu erlauben oder zu verbieten. Wurden die Interrupts global aktiviert, so legt der PIC fest, welche Interrupts weitergreicht werden um vom System behandelt zu werden. Es ist wichtig,d ass Interrupts nur behandelt werden, falls der entsprechende Interrupt erlaubt wurde und die Behandlung im allgemeinen aktiviert ist - siehe dazu die Klasse CPU.

Der PIC basiert auf Intels 8259 Chip und besteht aus einem Master-Slave PIC-System. Heutzutage werden sie meist nur "emuliert". Verwendet wird mittlerweile APIC, welcher für ein Mehrkernbetrieb notwendig ist.

Definiert in Zeile 45 der Datei pic.h.

Dokumentation der Aufzählungstypen

externe Interruptquellen

Die folgende Liste gibt die oft genutze Liste der Interrupts an. Sie ist nicht für alle Computer gleich, da sie sich danach richtet, welche Hardware an den entsprechenden Interrupteingang vom PIC angeschlossen ist.

Die ersten acht Einträge stammen vom ersten PIC (Master), die letzten acht vom zweiten PIC (Slave).

Aufzählungswerte:
timer 

Intervallzähler (PIT)

keyboard 

Tastaturkontroller.

pic2 

Anschluss von Slave-PIC.

serial2 

RS-232 Port 2 und 4.

serial1 

RS-232 Port 1 und 3.

soundcard 

Soundkarte oder LPT 2.

floppy 

Diskettenkontroller.

parallelport 

LPT 1 und unechter Interrupt.

rtc 

Echtzeituhr vom CMOS (RTC)

misc 

verschiedene

ata4 

vierter ATA(PI)/IDE

ata3 

dritter ATA(PI)/IDE

secondps2 

zweiter Tastaturkontrolleranschluss

fpu 

Gleitkommazahleneinheit.

ata1 

erster ATA(PI)/IDE

ata2 

zweiter ATA(PI)/IDE und unechter Interrupt

Definiert in Zeile 67 der Datei pic.h.

Beschreibung der Konstruktoren und Destruktoren

PIC::PIC ( )

Standardkonstruktor.

Er initialisiert den PIC und maskiert alle einkommenden Interrupt, damit wird keiner an die CPU durchgereicht. Danach aktiviert er die globale Interruptverarbeitung der CPU und ermöglicht das auftreten und ausgeben von Exceptions.

Definiert in Zeile 21 der Datei pic.cc.

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

PIC::~PIC ( )

Destructor globally disabling interrupts.

Definiert in Zeile 40 der Datei pic.cc.

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Dokumentation der Elementfunktionen

void PIC::ack ( Interrupts  interrupt)

sendet ein "Acknowledgement" eines ausstehenden Interrupts

Die Funktion bestätigt die Behandlung eines aufgetretenen Interrupts. Dies sagt dem PIC, dass der letzte gemeldete Interrupt abgearbeitet wurde

Definiert in Zeile 85 der Datei pic.cc.

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

void PIC::allow ( Interrupts  interrupt)

Erlaubt einen speziellen Interrupt von einem Peripheriegerät.

Definiert in Zeile 45 der Datei pic.cc.

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void PIC::forbid ( Interrupts  interrupt)

verbietet einen speziellen Interrupt eines Peripheriegerätes

Definiert in Zeile 65 der Datei pic.cc.

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Dokumentation der Datenelemente

IO_Port PIC::ctrl_1
private

Definiert in Zeile 47 der Datei pic.h.

IO_Port PIC::ctrl_2
private

Definiert in Zeile 48 der Datei pic.h.

IO_Port PIC::mask_1
private

Definiert in Zeile 49 der Datei pic.h.

IO_Port PIC::mask_2
private

Definiert in Zeile 50 der Datei pic.h.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: