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 

RT Speicher Überlauf



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!

28.01.2009, 08:33
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RT Speicher Überlauf
' schrieb:Hallo!

Danke für dir schnelle Antwort!

Bezgl. FPGA: Ich hab gelesen, dass man dort Arrays tunlichst vermeiden soll?! Meinst du das mit Queues?

Bezgl. RT: Hm, ich benutze das Array eigentlich nur in ganz bestimmten Fällen/Cases und die werden auch manchmal garnicht aufgerufen. Trotzdem steigt der Speicherbedarf!
Scheint an den SVE Variablen zu liegen, nur wie kann ich das lösen?

P.

auf dem FPGA gibt es keine Queues, die gibt es nur auf dem RT-Host, und dort sollte man sie mit Vorsicht genießen und ggf. durch RT-FIFOs ersetzen (z.B. wenn man einen kontinuierlichen Datenstrom von einem zum anderen VI übertragen will)

Den Speicher von Queues kann man beim Start des Programms allocieren, in dem man dem Queue eine feste Größe gibt, ihn dann einmal "ganz voll macht" und anschließend eine Flush Queue Primitive ausführt. Man sollte auch darauf achten, dass - wenn man diese Methode so anwendet - man bei Einfüge-Operationen immer einen Timeout mit angibt, damit die Insert Into Queue Primitive mit einem Fehler abbricht, wenn die Queue voll ist ...

Arrays auf dem FPGA haben immer eine feste Größe, die man einstellen muss, dynamische Arrays wie auf dem PC oder dem RT-Host gibt es nicht, früher oder später würde der Compiler einen Fehler melden wenn man versucht sowas zu programmieren. Zudem hat der Speicher-Verbrauch auf dem FPGA rein gar nichts mit dem Speicher-Verbrauch auf dem RT-Host zu tun. Wenn das FPGA-VI kompiliert ist, ist das ein Bitfile an dem sich nichts mehr ändert.

Wie gesagt von diesen Shared Variables hab ich keine Ahnung, ich benutze Sie nicht, weil sie zum einen (als ich es getestet habe) sich nicht an Typedefs binden ließen und man sie zum anderen immer Pollen muß. Das finde ich total lästig und passt auch nicht in meine Art zu Programmieren. Für die Daten-Übertragung zwischen RT-Controller und PC habe ich mein eigenes Protokoll basierend auf TCP-IP entwickelt das super funktioniert. Zum einen habe ich damit eine sichere Datenübertragung (durch das TCP) zum anderen habe ich damit quasi soetwas wie ein Event: wenn eine Nachricht eingeht (ist egal auf welcher Seite) wird die Botschaft in eine Queue geschoben und von dem entsprechenden Modul verarbeitet ...

Wenn du das nun debuggen musst, würde ich einfach mal die Shared Variables eliminierenund zu Test-Zwecken z.B. durch Globale Variablen ersetzen. Dann kannst du das RT-VI laufen lassen und zur Laufzeit die Werte der GVs ändern und dir dabei mit dem RT-System-Manager den Speicher-Bedarf angucken. Steigt er immer noch lag's nicht an den SVs, ist es weg wird's das wohl gewesen seinWink

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RT Speicher Überlauf - Peyotito - 27.01.2009, 16:55
RT Speicher Überlauf - cb - 27.01.2009, 17:12
RT Speicher Überlauf - Peyotito - 28.01.2009, 08:08
RT Speicher Überlauf - cb - 28.01.2009 08:33

Gehe zu: