13.07.2009, 14:47
(Dieser Beitrag wurde zuletzt bearbeitet: 13.07.2009 15:04 von amin.)
Beitrag #1
|
amin
LVF-Gelegenheitsschreiber
Beiträge: 115
Registriert seit: Dec 2008
2009, 8.61, 8.51
2008
en
76131
Deutschland
|
C-Code inLabVIEW Embedded for ARM ?
Hallo,
ich möchte einen grösseren bereits vorhandenen C-Code in ein "LabVIEW-Embedded for ARM" Projekt integrieren. Wenn ich sowas für das normale LabVIEW mache, erstelle ich eine DLL, die ich dann über ein "Call Libary Function Node" aufrufe. Hier ist mir auch der Sinn einer DLL klar, da man so die Funktionalität direkt nutzen kann.
Wenn ich jedoch den Code mit Matlab Embedded auf einem ARM ausführe, dann macht eine DLL meines erachtens nicht sehr viel sinn - da das Modell bei Ausführung ohnehin komiliert wird. Zudem weis ich nicht, wie ich eine passende DLL für den ARM erstelle. Gleiche gilt für CIN, wobei dieses ja, da in LabVIEW Embedded nicht vorhanden, ohnehin nicht funktionieren wird.
Gibt es keine Möglichkeit einfach C-Projekt in Sourcen Form einzubinden, so das diese Platformübergreifend funktionieren ? Etwa so wie bei dem Inline-C-Node, welcher aber nur für einfache Funktionen nutzbar ist, da hier ja nur ein C-File + Header genutzt werden kann, oder sehe ich das falsch ?
Gruß & Danke
amin
|
|
|
13.07.2009, 18:19
(Dieser Beitrag wurde zuletzt bearbeitet: 13.07.2009 18:19 von rolfk.)
Beitrag #2
|
|
|
14.07.2009, 13:54
Beitrag #3
|
amin
LVF-Gelegenheitsschreiber
Beiträge: 115
Registriert seit: Dec 2008
2009, 8.61, 8.51
2008
en
76131
Deutschland
|
C-Code inLabVIEW Embedded for ARM ?
Hallo,
vielen Dank erstmal.
Das mit dem Inline C-Node scheint bei den ersten Versuchen prinzipiell zu funkionieren. Jedoch habe ich hier ein Problem das ich in den eingebundenen Header Files immer die dazugehörigen gleich benannten C Files nochmal als include setzen muss. Und hierbei auch noch den kompletten Pfad angeben muss, obwohl sie im gleichen Ordner liegen.
Gibt´s dafür eventuell eine elegantere Lösung, so dass ich den Ordner irrgendwo definieren kann und LabVIEW dann von selbst die C Files findet ?
Gruß
amin
|
|
|
15.07.2009, 15:35
Beitrag #5
|
amin
LVF-Gelegenheitsschreiber
Beiträge: 115
Registriert seit: Dec 2008
2009, 8.61, 8.51
2008
en
76131
Deutschland
|
C-Code inLabVIEW Embedded for ARM ?
Danke !
Da hast Du natürlich recht, hier wird wohl die Hauptschuld beim Compiler zu suchen sein. Jedoch gehört dieser (Keil uVision) eigentlich fest zu zu LabVIEW Embedded for Arm.
Eine Einstellmöglichkeit habe ich im Übrigen leider nicht gefunden.
Gruß & Danke nochmal
amin
|
|
|
15.07.2009, 16:58
Beitrag #6
|
|
|
06.08.2009, 12:50
Beitrag #7
|
KalleKrabowski
LVF-Neueinsteiger
Beiträge: 4
Registriert seit: Aug 2009
8.6
-
de_en
61061
Deutschland
|
C-Code inLabVIEW Embedded for ARM ?
Ich möchte gerne Code aus dem Keil-Beispiel "USBCDC" für das MCB2300 Board in LabVIEW benutzen. Den Code mittels einer "Inline C Node" zu integrieren, funktioniert nicht, da LabVIEW durch die große Codemenge sehr langsam wird und dann auch abstürzt. Zudem bekomme ich viele Fehlermeldungen beim Compilieren.
Die "Call Library Funktion Node" zu benutzen, scheint mir auch viel komfortabler zu sei. Da Keil und LabVIEW ja ein Paket sind, muss es doch möglich sein, mit Keil den Code irgendwie als DLL zu compilieren. Eine Library (.lib) habe ich schon erstellt, aber konnte sie nicht in LabVIEW integrieren.
Hat jemand eine Idee, wie ich mit Keil eine DLL aus C-Code erstellen kann, die mit LabVIEW kompatibel ist? Ich benutze einen LPC2368 mit MCB2300 Board.
Gruß,
Kalle
|
|
|
06.08.2009, 20:58
Beitrag #8
|
rolfk
LVF-Guru
Beiträge: 2.305
Registriert seit: Jun 2007
alle seit 6.0
1992
EN
2901GG
Niederlande
|
C-Code inLabVIEW Embedded for ARM ?
' schrieb:Ich möchte gerne Code aus dem Keil-Beispiel "USBCDC" für das MCB2300 Board in LabVIEW benutzen. Den Code mittels einer "Inline C Node" zu integrieren, funktioniert nicht, da LabVIEW durch die große Codemenge sehr langsam wird und dann auch abstürzt. Zudem bekomme ich viele Fehlermeldungen beim Compilieren.
Die "Call Library Funktion Node" zu benutzen, scheint mir auch viel komfortabler zu sei. Da Keil und LabVIEW ja ein Paket sind, muss es doch möglich sein, mit Keil den Code irgendwie als DLL zu compilieren. Eine Library (.lib) habe ich schon erstellt, aber konnte sie nicht in LabVIEW integrieren.
Hat jemand eine Idee, wie ich mit Keil eine DLL aus C-Code erstellen kann, die mit LabVIEW kompatibel ist? Ich benutze einen LPC2368 mit MCB2300 Board.
Gruß,
Kalle
Das mit der Call Library Node geht leider nicht so einfach wie Du Dir scheinbar denkst. Erstens sind DLLs eine reine Windows Angelegenheit, auf anderen Plattformen heisst das Shared Library. Zweitens weiss ich überhaupt nichts über das Format von Shared Libraries unter ARM Systemen im allgemeinen und mit dem Keil System und dem damit verbundenen RT Kern im speziellen. Es ist sehr gut möglich dass dieser Kern keine Shared Libraries unterstützt. Dass LabVIEW mit dem Code in der Inline C Code langsam wird hat wohl weniger mit der Inline C Node selber zu tun als mit dem C Code selber und selbst als Shared Library aufgerufen, wird das nicht prinzipiel schneller oder zuverlässiger funktionieren. Wahrscheinlich macht dieser Code einfach etwas dass weniger dann suboptimal ist, ob grundsätzlich oder im Zusammenhang mit der LabVIEW Umgebung sei dahin gestellt aber durch das in eine Shared Library zu verpacken und so aufzurufen veränderst Du daran im Prinizip nichts.
Rolf Kalbermatter
|
|
|
07.08.2009, 13:42
Beitrag #9
|
amin
LVF-Gelegenheitsschreiber
Beiträge: 115
Registriert seit: Dec 2008
2009, 8.61, 8.51
2008
en
76131
Deutschland
|
C-Code inLabVIEW Embedded for ARM ?
Also ich habe auch ein relativ großes C-Projekt bei mir drin und das funktioniert eigentlich ohne Probleme mit dem inline C-Node.
Jedoch schreibe ich nur ganz wenig in den Inline-C-Node direkt, den Rest binde ich über Header ein.
Ob DLL Blöcke bei Embedded gehen, weis ich auch nach wie vor nicht sicher. Jedoch werden ja eigentlich die nicht verwendbaren Blöcke ausgeblendet und der DLL Block bleibt da. Was aber gegen den DLL Block an sich spricht, ist das eine DLL eben, wie es rolfk schon sagte, nur was für Windows ist. Und ich habe lange rumgesucht und auch nichts dafür gefunden.
Gruß
amin
|
|
|
07.08.2009, 19:48
|
|
|
| |