INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

LV Handles



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

16.03.2009, 10:16 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2009 10:23 von rolfk.)
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
LV Handles
' schrieb:Jo, das klingt doch als würde es etwas länger dauern bis man durchsteigt. Ich habe die Beschreibung nochmal durchforstet und poste mal die Möglichkeiten für das Control Flag:
HOST_ADDRESS:
Specifies that DataPtr is a logical address that points to the data. Specifies that DataPtr is a logical address that points to the data ...

Note that when using logical addresses, memory protection errors could result.
PHYSICAL_ADDRESS:
Specifies that DataPtr is a physical address that points to the data ...

Note that using physical addresses provides direct access to any of your computer's memory mapped devices.

Specifics
This setting must be used for all buffers with the AQUIS attribute.

Ich muss doch den Parameter PHYSICAL_ADDRESS wählen, da ich ja daten erfassen möchte (Attribut AQUIS). Ich habe aber trotzdem schon den ein oder anderen schönen Bluescreen erzeugt Pccrash
Also scheine ich bei der Übergabe etwas falsch zu machen und die Funktion möchte in den falschen Speicherbereich schreiben. Damit wäre ich wieder bei dem Punkt wie ich den richtigen Adressbereich aus dem Handle ziehe. ODer liege ich mit meiner Einschätzung komplett daneben?

THX

Also so wie ich das lese, müsstest Du bei der Übergabe eines Pointers auf den Datenbereich eines LabVIEW Handles doch echt HOST_ADRESS verwenden. PHYSICAL_ADDRESS wäre sinnvoll wenn Du die Daten direkt per DMA auf den in den PCI-Bus gemappten Speicher einer PCI-Karte verschieben lassen möchtest. Das mit dem ACQUIS Attribute verstehe ich nicht ganz, aber trotzdem. Ein User Space Datenpointer, und das ist jeder Memorybereich der vom Speichermanager angefragt wird, ist wirklich keine Physical Address!!

Eventuel hat Dein API noch andere Funktionen wo Du direkt auf der Karte einen Onboardbuffer anlegen kannst. Dieser könnte dann das besagteAttribute bekommen und müsste auch als PhysicalAddress übergeben werden. NI hatte das mal vor vielen Jahren mit ihren DSP Karten so gemacht. Das Ganze war dazu gedacht um direkt optimal von den DMA Möglichkeiten Gebrauch zu machen.

Inzwischen wird das alles ganz transparent hinter den Kulissen in DAQmx gemacht und ist nicht wirklich langsamer und hat als Vorteil, dass sich der Benützer nicht mit solchen unverständlichen Details rumschlagen muss.

Dass Du bei der Übergabe eines Speicherpointers einen Bluescreen erzeugst wenn Du dem Treiber mitteilst dass er das als Physical Adress behandeln soll ist nicht verwunderlich. Effektiv könntest Du damit eventuel sogar die eine oder andere Hardware in Deinem PC per Unglück "bricken". Das ist der Ausdruck wenn man einen Chip auf der Hardware so anspricht, dass er irgendwas unzulässiges ausführt und sich selber oder eine andere Hardwarekomponente dabei so beschädigt dass sie ungefähr so wertlos wird wie ein Ziegelstein (engl. Brick) Lol. Meistens ist das auch unreparierbar.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
LV Handles - abrissbirne - 11.03.2009, 13:53
LV Handles - abrissbirne - 11.03.2009, 16:46
LV Handles - rolfk - 11.03.2009, 19:44
LV Handles - abrissbirne - 11.03.2009, 22:06
LV Handles - rolfk - 12.03.2009, 09:49
LV Handles - abrissbirne - 16.03.2009, 08:45
LV Handles - rolfk - 16.03.2009 10:16

Gehe zu: