' schrieb:LabVIEW selber hat ja eine PCI-Express Karte im Angebot. Daher müssen sie das Fachwissen, wie ich die Daten über den PCI-Express-Bus bekomme besitzen. Gibt es denn LabVIEWplugins, mit deren Hilfe ich auf den PCI-Express Bus zugreifen kann zu kaufen?
Bitte nimm zur Kenntnis dass LabVIEW mit welcher Hardware dann auch nichts direkt selber tut. Das geht immer durch Treiber. LabVIEW bietet auch keine PCIExpress Karte an, sondern der Hersteller von LabVIEW und das ist National Instruments.
Natürlich hat National Instruments das Wissen wie eine PCIExpress Karte anzusprechen ist. Nicht nur das die haben sogar einen eigenen PCIExpress Businterfacecontroller für ihre Hardware entwickelt und deren DeviceTreiber sind dann auch ganz spezifisch für diesen Controller optimalisiert.
Und die entsprechenden Kerneldevicetreiber sind Bestandteil der entsprechenden Treiber wie NI-488.2, NI-VXI, NI-DAQmx, etc, etc. LabVIEW greift dann ganz einfach mittels VI Libraries auf das Userspace API dieser Treiber.
Direkte Kontrolle des PCI Buses (oder jeder anderen Hardware) ohne dazwischen liegendem Device Treiber (ob das jetzt ein Standarddevicetreiber von Windows ist wie für Disk Access etc. oder ein eigener wie für die NI Hardware) macht in heutigen OS'es ganz einfach keinen Sinn mehr.
Allerdings kommen die meisten Hardware Developer Kits (zu denen wohl auch Dein Board gehört) bereits mit vorgefertigten Devicetreibern für verschiedene Betriebssysteme. Damit kannst Du die Register des Businterfaces und in beschränktem Masse die dahinter liegende Customhardware kontrollieren. Ansprechen dieses TreiberAPIs, das dann die Anbindung mit PnP des OS auch gleich übernimmt, mittles Call Library Node ist wohl die einfachste Art um so eine Hardware zu kontrollieren.
Um dann optimalisierten Zugriff auf Deine Customhardware zu bekommen wirst Du aber um die Erstellung eines eigenen Kerneldevicetreibers und der entsprechenden Userspace API DLL nicht herumkommen. Und das ist ganz sicher nicht etwas für unbedarfte C Programmierer. Kerneldevicetreiberentwicklung ist auch wenn Du von einem bestehenden Treibertemplate ausgehen kannst wirklich die etwas höhere Kunst des Programmierens und ein einziger falscher Pointer kann Dir wirklich das ganze OS so durcheinander bringen dass nur noch der Powerschalter helfen kann.
Rolf Kalbermatter