Sida 1 av 1
Pci programering?
Postat: 18 april 2005, 22:25:22
av Virror
Någon som vet en bra sida som tar upp hur man programerar pci porten?
Någon som har gjort det tidigare med bra resultat?
Postat: 18 april 2005, 22:34:10
av cyr
Vad är det du vill göra exakt?
PCI är ingen port på samma sätt som t.ex. serieporten, det är en buss. Och själva bussen är mer eller mindre transparent så det man eventuellt "programmerar" är de kort/chip som sitter på bussen.
Det närmaste jag kommit är att programmera om PCI-ISA bryggan på ett PC104-kort för att få lite mer fart på den bussen... Men det är förmodligen inte till någon större nytta för dig.

Det sista jag jorde och kopplade
Postat: 18 april 2005, 22:39:44
av bengt-re
in på en buss i datorn var ett a/d kort av ISA-standard som satt i en burk som hade mindre hårddisk än vad jag har i ram på den bureken jag har nu.... Verkar sundare att lära sig USB2 och interface den vägen... Lättare om inte annat och farten på USB duger ju oftast.
Postat: 18 april 2005, 22:46:16
av Virror
Jo, jag vet att det igentligen är en buss, skulle bara vara lite tufft att göra ett eget pci kort till datorn, men man måste ju ändå ha ett program som tar hand om datan som kommer från bussen.
Postat: 18 april 2005, 23:02:44
av henkebenke
Själva bussen är ju minnesmappad så kommunikationen med kortet består i att skriva och läsa på rätt adresser. Hur sedan kortet berättar för datorn vilka adresser den använder det vet jag inte.
Ett fusktips...
Postat: 18 april 2005, 23:03:45
av bengt-re
Gör ett pcikort, men sno bara ström ifrån bussen och använd en intern usb-kontakt, sätt kortet i en pci-plats så ser det hela ärkeporffsigt ut ändå.... Jag menar, man behöver ju inte ansluta något bara för att man trycker ner det i den platsen och så får du din proffsiga gavelplåt och slipper få gråa hår när du skall lära dig den (förmodligen) bökiga pci-bussen ! USB-kontroller finns det som är väl dokumenterade idag och troligen den lättaste vägen att gå för att skapa egen hårdvara om man inte räknar rs-232 som ändå snart är borta
Postat: 18 april 2005, 23:06:58
av Virror
Så sant så, får se hur jag gör, skulle vara ett enormt framsteg bara att få en led att lysa eller nått. USB är ju iaf väldigt kraftfullt och mer användbart eftersom den är extern.
Postat: 18 april 2005, 23:49:57
av cyr
Att lära sig programmera för PCI-bussen handlar nog i första hand om att lära sig skriva drivrutiner för det operativsystem man vill köra under.
Ja troligen...
Postat: 19 april 2005, 00:05:52
av bengt-re
Känns lite motbjudande att ge sig in i det träsket... Till USB.kontroller man kan köpa så finns själva drivrutinen, så hela operativsystembiten kan man slippa och bara få API´t direkt framför näsan... Känns lite lättare att hantera om man inte är väldigt envis och duktig programerare...
Postat: 30 april 2005, 14:02:11
av Seven11
kolla upp I/ portarna 0xcf8 0ch 0xcf9 (på alla x86 system i alla fall). Det man gör är att man skriver in addressen på port 0xcf8 och läser 32 bitar från data porten 0xcf9. Det du får ut efter att ha hämtat 512 byte (alltså 128 läsningar) är vad som kallas "PCI COnfiguration Space" det är det huvud där det står vilken typ av enhet det är, vem som har gjort den, samt en massa status och kontroll bitar.
Att hålla på med PCI bussen är egentligen väldigt enkelt, om du skulle göra ett eget kort så behöver du bara räkna upp i address (kommer inte ihåg om det är byte/word eller dword) till du kommer till ditt kort, därefter så aktiverar du kortet (sätter vissa flaggor om det behövs) och *vips* så funkar det.
Det jag har beskrivit här är hur ALLA operativsystem måste göra men eftersom du inte skriver ditt eget OS utan istället ska skriva en drivrutin så måste du göra det den hårda vägen: lära dig mål operativsystemets drivrutinsfunktion (det finns böcker i bibel format för detta ämne).
Ta en titt på PLX PCI kretsar om du planerar att göra ett eget PCI kort