2017-08-24 3 views
1

Ich habe die Aufgabe, einen KMDF-basierten PCI-Treiber für Windows zu schreiben. Grundsätzlich besteht das Ziel darin, Daten in den RAM zu schreiben, der sich auf einer FGPGA-Platine befindet (die Platine existiert noch nicht). Eine PCI-Schnittstelle auf dem FPGA ermöglicht das direkte Lesen und Schreiben von Daten in den FPGA-RAM.WINDOWS KMDF PCI TREIBER: - API zum Schreiben von Daten auf MemoryMapped Virtuelle Adresse

Die Idee ist die notwendige Speicherzuordnung Informationen werden in BAR0 Register gespeichert. Der Speicherdeskriptortyp wäre CmResourceTypeMemory. Der erste Schritt wäre, die Registerinformation BAR0 zu lesen und eine Speicherzuordnung zu erstellen.

Mit einer anderen Platine habe ich einen grundlegenden Treiber geschrieben, der das obige ausführt.

Aber sobald ich die Speicheradresse (Virtual) habe, möchte ich dann aus diesem Speicher lesen und schreiben. Ich bemerke Windows hat APIs zum Lesen und Schreiben in PORTS und REGISTERS. Gibt es etwas Äquivalentes zum Schreiben und Lesen verschiedener Datenmengen an die virtuelle Adresse: - I.E. Kopieren eines Datenpuffers auf die virtuelle Adresse. Das Kopieren direkt scheint eine Option zu sein, ich vermute jedoch, dass es eine API geben könnte, um dies durchzuführen.

Ich habe verschiedene github PCI-Beispiele angeschaut, aber sie neigen dazu, Register und Port zu lesen und zu schreiben.

+0

Der Rückgabewert von [MmMapIoSpace] (https://msdn.microsoft.com/en-us/library/windows/hardware/ff554618 (v = vs.85) .aspx) wird ein Zeiger sein, den Sie verwenden können Lesen und schreiben Sie den FPGA-RAM. –

+0

Danke für die Antwort. Ich verwende MmMapIoSpace, um die virtuelle Adresse zu erhalten. Ich plane, RtlCopyMemory zu verwenden, um die Daten zu der virtuellen Adresse zu kopieren. Diese Daten stammen von einem IORequest Buffer. Im Moment habe ich keine Hardware, um dies zu bestätigen. –

Antwort

0

Verwenden Sie die Routinen READ_REGISTER_BUFFER_xxx und WRITE_REGISTER_BUFFER_xxx. Siehe Abschnitt HAL Library Routines in der MSDN-Dokumentation.

Verwandte Themen