Toon posts:

[w2k & PCI] PCI accessen vanuit usermode.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goed, ik ben dus bezig met een stukje hardwareontwikkeling. Ik heb een kaart ontworpen waar onder andere een PCI interface opzit, en ik wil, voor het debuggen, eenvoudig communiceren met dat kaartje. Hiervoor zou ik het liefste vanuit een eenvoudig usermode programmaatje bij de door de kaart geexporteerde blokken geheugen kunnen, zonder dat ik eerst 25000 kernelmode-driver parameters op exact de goede waarde moet zien te krijgen.

Dezelfde vraag iets technischer:

De kaart heeft de volgende 3 adresspaces gedefinieerd:
- BAR0 wijst naar een 4MB blok (prefetchable)
- BAR1 wijst naar een 8MB blok (non-prefetchable)
- BAR2 wijst naar een 16-byte blok (I/O)

De kaart heeft de volgende Vendor-ID: 0x1321
De kaart heeft de volgende Device-ID: 0x8000

Wat ik wil is dus eigenlijk zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "my_easypci.h"

int main()
{
  // Get the contents of Base Address Register 0
  DWORD *BAR0 = GetBAR0 (0x1321, 0x8000);
  // Get the contents of Base Address Register 1
  DWORD *BAR1 = GetBAR1 (0x1321, 0x8000);
  // Get the contents of Base Address Register 2
  DWORD *BAR2 = GetBAR0 (0x1321, 0x8000);

  // Now, do something useful. For example, see if
  // configuration succeeded by reading bit 2 of the 
  // status register at *(BAR2 + 0x00)

  if (BAR2[0] & 0x04) 
    printf ("Yezzz!!! It worked!\n");
  else
    printf ("Dammit! This sucks..\n");
}

Erg simpel, zou je zeggen. Alleen moet je standaard in windhoos de kerneldriver-dans uitvoeren voordat je zoiets eindelijk een keer mag.

Iemand een eenvoudige oplossing? Google struikelt over de kerneldriver development kit bedrijfjes, maar veel nuttigs komt er niet uit.

Btw, mocht het nog iets uitmaken, ik draai w2k Professional, checked build op de testmachine, en ik heb er een bak naaststaan met daarop de kernel debugger.

edit:

het [ code ] blok verknoeide de layout. Even aangepast

Verwijderd

Ik gok dat je iets zoeks als windriver (heb ff geen link bij de hand dus je moet ff zelf googlen, sorry) fabrikant was river oid?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 00:52
Er is een component waarmee je direct io en memory kunt lezen/schrijven. Ff checke ...

Kijk eens hier of dit wat is :
Leuke link

Zit in het WinDriver 5.05 pakketje dat je mag evalueren :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
windriver van Jungo...

Ik meen dat wij dat pakketje zelfs hebben op 't werk. Toch eens goed naar kijken dan..