Autor Thema: Ports  (Gelesen 5956 mal)

Snake707

  • Beiträge: 20
    • Profil anzeigen
    • Spezi-OS
Gespeichert
« am: 06. April 2007, 21:08 »
Hi,

es hieß, es gäbe massenweise tutorials darüber wie man treiber programmieren könnte. Ich habe mich mal hingesetzt, bestimmte dinge zu abstrahieren und komme auf ca. 10 Interrupts die ich im PM brauche. Allerdings finde ich kein Tutorial über die Ports. Soweit ich weiß muss man im Protected mode versuchen, da man das BIOS ja nicht mehr hat, über Ports an die Hardware zu kommen. Tastatur ist soweit ich weiß 0x60 und 0x64. Also kennt jemand ein Tutorial über Hardware ports.

mfg Snake707
SpeziOS und meine Freundin sind leider unvereinbar. Schade. Obwohl sie auch auf die Spezi geht. Nunja Chemiker und Biologen.

Physik ist nach wie vor die wichtigste Wissenschaft

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 06. April 2007, 23:04 »
Ein wirkliches tutorial kenn ich nicht, aber in
Ralf Brown's Interrupt Liste sind auch dir ports erklärt.
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 07. April 2007, 09:04 »
Hehe...du brauchst eigentlich kein Tut über Ports, sondern eher eins über einen bestimmten Treiber...

Also was für einen Treiber willst du zuerst machen? Fang z.B. mit Tastatur an, dann würde ich Grafik machen usw...

In der schnelle habe ich das gefunden zur Tastatur...http://www.osdev.org/osfaq2/index.php/Getting%20Keyboard%20Input.
Kannst auch mal im Wiki usw. schauen.


Gruss
Noooooooooos

Snake707

  • Beiträge: 20
    • Profil anzeigen
    • Spezi-OS
Gespeichert
« Antwort #3 am: 07. April 2007, 13:40 »
Nun ich denke, dass das ganz gut ist, wenn ich mir tutorials über treiber durchlese. Trotzdem sollte ich zumindest wissen, was die einzelnen Ports machen, sodass ich selbst in der Lage wäre mir Treiber aus der Nase zu ziehen ;) (mein Ausdruck mal wieder -.-)

mfg Snake707
SpeziOS und meine Freundin sind leider unvereinbar. Schade. Obwohl sie auch auf die Spezi geht. Nunja Chemiker und Biologen.

Physik ist nach wie vor die wichtigste Wissenschaft

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 07. April 2007, 15:16 »
Naja...eben Tuts über alle Ports gibts nicht....Weil das dann sicher etwa 60'000 Seiten hätte (wenn pro Port nur eine Seite gebraucht würde)...

Deshalb kannst du dir nur Tuts oder auch Docs zu allen möglichen Treibern lesen...Da werden auch die entsprechenden Ports behandelt.


Gruss
Noooooooooooooos

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 07. April 2007, 20:44 »
Nun, Ports kann man am besten mit dem Arbeistspeicher vergleichen. Es ist ein Adressraum von 16Bit.
Über die einzelnen Ports kann man die hardware ansprechen.
Auch einige Berreiche des Adressraumes vom Arbeistspeicher werden verwendet um mit bestimmter Hardware zu kommunizieren.

Einige Ports sind fest vergeben (z.B. Tastertur) andere nicht.

Es gibt im Internet einige Listen wo die Standardverwendungen vieler Ports beschrieben sind, aber um einen Treiber zu schreiben reichen diese offt nich aus.

Wenn du also einen Treiber schreiben möchtest, solltest du dir ein Tutorial genau für das zu programmierende Gerät suchen.
db 0x55AA

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 08. April 2007, 22:22 »
Genau. Zudem haben verschiedene Geräte nicht nur verschiedene Portadressen, sondern teilweise auch ganze Bereiche. Beispielsweise findest du den Parallelport auf Port 0x378 für die Daten und auf Port 0x37A für die Steuerleitungen/Einstellungen.

Also - wie schon gesagt - musst du dich exakt mit der Hardware beschäftigen. Der PCI-Bus gibt dir zu den Geräten auch die Port-Bereiche vor (PnP) zu denen du dann relativ vorgehen musst.

Gruß,
Svenska

Cheebi

  • Beiträge: 91
    • Profil anzeigen
    • Cheebis Webseite
Gespeichert
« Letzte Änderung: 16. April 2007, 00:43 von Cheebi »
0100 1001 0100 1100 0100 0001 0010 0000 0011 1010 0010 1101 0010 1010
http://www.cheebi.de

 

Einloggen