Von Matlab zu C Code: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Anlegen eines Projekts==
==Anlegen eines Projekts==


Der Matlab Coder lässt sich in der Version 2014a über die App auswahl im Matlab Haubtfenster starten.  
Der Matlab Coder lässt sich in der Version 2014a über die App Auswahl im Matlab Hauptfenster starten.  
Startet man die App so wird als erstes ein neues Projekt angelegt.In dem geöffneten Dialogfenster kann der Name und Speicherort des Projekts festgelegt werden. Im Matlabfenster erscheint  der Matlab Coder als neuer Bereich.
Startet man die App, so wird als erstes ein neues Projekt angelegt.In dem geöffneten Dialogfenster kann der Name und Speicherort des Projekts festgelegt werden. Im Matlabfenster erscheint  der Matlab Coder als neuer Bereich.


[[Datei:Matlab_Coder_Projekt_anlegen.png ]]
[[Datei:Matlab_Coder_Projekt_anlegen.png ]]
Zeile 8: Zeile 8:
== Dateien ins Projekt übernehmen ==
== Dateien ins Projekt übernehmen ==


Die in Matlab geschriebenen Funktionen / Skripte können per Drag and Drop oder über Add files im Coder Fenster in das Projekt im Matlab Coder Fenster übernommen werden. Es ist darauf zu achten das nur die Hautfunktion hinzugefügt wird. Funktionen die von dieser aufgerufen werden durch den Aufruf automatisch mitübernommen. Ist die Funktion im Projekt wird sie dort mit ihren Parametern angezeigt. Für die Ein und Ausgabe Parameter muss der Dateityp und dessen Dimensionen gesetzt werden.   
Die in Matlab geschriebenen Funktionen / Skripte können per Drag and Drop oder über "Add files" im Coder Fenster in das Projekt im Matlab Coder Fenster übernommen werden. Es ist darauf zu achten, dass nur die Hauptfunktion hinzugefügt wird. Funktionen die von dieser aufgerufen werden durch den Aufruf automatisch mitübernommen. Ist die Funktion im Projekt wird sie dort mit ihren Parametern angezeigt. Für die Ein- und Ausgabeparameter müssen der Dateityp und dessen Dimensionen gesetzt werden.   


[[Datei:Matlab_Coder_Daten.png]]
[[Datei:Matlab_Coder_Daten.png]]
== Code generieren ==
Um den C-Code zu erzeugen, müssen unter Build noch Einstellungenen vorgenommen werden. Der Output-Typ muss auf  "C/C++ Static Library" (Dynamic Libary bei gemischten C / C++ Projekten)  und der Harken bei "Generate Code only" soltte gesetzt werden.  Unter "More settings" stehen viele weitere Einstellungen wie Speicheroptimierung oder Geschwindigkeitsoptimierung zur Verfügung. Im Anschlus wird der Build-Button betätigt. Während des Buildvorganges kann es zu Fehlern kommen. Matlab zeigt eine Beschreibung des Fehlers und die Zeile an. Häufige Fehler sind undefinierte Matrix Dimensionen oder Datentypen, die nicht zueinanderpassen. Abhilfe schafft hier jede Matrix vorher mit 0 zu füllen und Variablen in Matlab mit Datentypen zu definieren oder an passender Stelle zu casten. Um den erzeugten Quellcode ins C-Projekt zu integrieren, müssen alle generierten Header und C-files mit übernommen werden.
[[Datei:Matlab_Coder_Projekt_buliden.png]]
== error LNK2019 ==
'''Autor:''' Thomas Miska (In Anlehnung an den Lösungsvorschlag von '''Autor:''' Luca Di-Lillo)<br/>
Nach der Erstellung eines Visual Studio Projektes (Konsolenanwendung in C++) müssen folgende Einstellungen in Visual Studio und dem Projekt vorgenommen werden:
# '''Debug''' Dropdown Menü in der oberen Leiste auswählen und die Auswahl auf Win32 bzw. x86 setzen (s. Abbildung [1])<br>
# Im '''Projektmappen-Explorer''' mit einem Rechtsklick auf die Projektmappe Eigenschaften auswählen.<br>
# In diesem Fenster sicherstellen, dass die Dropdown-Auswahl auf Degug und Win32 bzw. x86 eingestellt ist. (s. Abbildung [2] - rote Umrandung<br>
# Nachfolgend Auswahl der Registerkarte '''C/C++''' (s. Abbildung [2] - blaue Umrandung)<br>
# Unter dem Punkt '''Zusätzliche Includeverzeichnisse''' (s. Abbildung [2] - grüne Umrandung) den Dateipfad zu Headerdateien angeben. Mit der Bezeichnung $(SolutionDir)$, wird aktuelle Projektordner eingefügt und Unterordner werden mit einem '''\Ordnername''' angehängt. <br>
# Library-Dateien (.lib) werden mit dem Linker verlinkt. Dies Verlinkung werden in der Registerkarte '''Linker''' unter '''Allgemein''' definiert (s. Abbildung [3] - rote Umrandung). <br>
# Im folgenden müssen diese im '''Zusätzliche Bibliotheksverzeichnisse''' definiert werden (s. Abbildung [3] - grüne Umrandung). <br>
# Unter der Registerkarte '''Eingabe''' in '''Linker''' werden die Library-Dateien hinzugefügt (s. Abbildung [4] - rote und grüne Umrandung)
[[Datei:Microsoft Visual Studio Debug x86.png|thumb|x360px|left|[1] Visual Studio auf x86 bzw. Win32 einstellen]]
[[Datei:C++Eigenschaftenseiten.png|thumb|x360px|center|[2] Visual Studio (C++) Projekt Eigenschaften]]
[[Datei:Eigenschaftenseiten linker allgemein.png|thumb|x360px|left|[3] Linker Einstellungen]]
[[Datei:Eigenschaftenseiten linker eingabe.png|thumb|x360px|center|[4] Zusätzliche Abhängigkeiten]]
----
→ zurück zum Hauptartikel: [[Praktikum_SDE|Praktikum SDE]]

Aktuelle Version vom 8. November 2019, 13:02 Uhr

Anlegen eines Projekts

Der Matlab Coder lässt sich in der Version 2014a über die App Auswahl im Matlab Hauptfenster starten. Startet man die App, so wird als erstes ein neues Projekt angelegt.In dem geöffneten Dialogfenster kann der Name und Speicherort des Projekts festgelegt werden. Im Matlabfenster erscheint der Matlab Coder als neuer Bereich.

Dateien ins Projekt übernehmen

Die in Matlab geschriebenen Funktionen / Skripte können per Drag and Drop oder über "Add files" im Coder Fenster in das Projekt im Matlab Coder Fenster übernommen werden. Es ist darauf zu achten, dass nur die Hauptfunktion hinzugefügt wird. Funktionen die von dieser aufgerufen werden durch den Aufruf automatisch mitübernommen. Ist die Funktion im Projekt wird sie dort mit ihren Parametern angezeigt. Für die Ein- und Ausgabeparameter müssen der Dateityp und dessen Dimensionen gesetzt werden.


Code generieren

Um den C-Code zu erzeugen, müssen unter Build noch Einstellungenen vorgenommen werden. Der Output-Typ muss auf "C/C++ Static Library" (Dynamic Libary bei gemischten C / C++ Projekten) und der Harken bei "Generate Code only" soltte gesetzt werden. Unter "More settings" stehen viele weitere Einstellungen wie Speicheroptimierung oder Geschwindigkeitsoptimierung zur Verfügung. Im Anschlus wird der Build-Button betätigt. Während des Buildvorganges kann es zu Fehlern kommen. Matlab zeigt eine Beschreibung des Fehlers und die Zeile an. Häufige Fehler sind undefinierte Matrix Dimensionen oder Datentypen, die nicht zueinanderpassen. Abhilfe schafft hier jede Matrix vorher mit 0 zu füllen und Variablen in Matlab mit Datentypen zu definieren oder an passender Stelle zu casten. Um den erzeugten Quellcode ins C-Projekt zu integrieren, müssen alle generierten Header und C-files mit übernommen werden.

error LNK2019

Autor: Thomas Miska (In Anlehnung an den Lösungsvorschlag von Autor: Luca Di-Lillo)
Nach der Erstellung eines Visual Studio Projektes (Konsolenanwendung in C++) müssen folgende Einstellungen in Visual Studio und dem Projekt vorgenommen werden:

  1. Debug Dropdown Menü in der oberen Leiste auswählen und die Auswahl auf Win32 bzw. x86 setzen (s. Abbildung [1])
  2. Im Projektmappen-Explorer mit einem Rechtsklick auf die Projektmappe Eigenschaften auswählen.
  3. In diesem Fenster sicherstellen, dass die Dropdown-Auswahl auf Degug und Win32 bzw. x86 eingestellt ist. (s. Abbildung [2] - rote Umrandung
  4. Nachfolgend Auswahl der Registerkarte C/C++ (s. Abbildung [2] - blaue Umrandung)
  5. Unter dem Punkt Zusätzliche Includeverzeichnisse (s. Abbildung [2] - grüne Umrandung) den Dateipfad zu Headerdateien angeben. Mit der Bezeichnung $(SolutionDir)$, wird aktuelle Projektordner eingefügt und Unterordner werden mit einem \Ordnername angehängt.
  6. Library-Dateien (.lib) werden mit dem Linker verlinkt. Dies Verlinkung werden in der Registerkarte Linker unter Allgemein definiert (s. Abbildung [3] - rote Umrandung).
  7. Im folgenden müssen diese im Zusätzliche Bibliotheksverzeichnisse definiert werden (s. Abbildung [3] - grüne Umrandung).
  8. Unter der Registerkarte Eingabe in Linker werden die Library-Dateien hinzugefügt (s. Abbildung [4] - rote und grüne Umrandung)
[1] Visual Studio auf x86 bzw. Win32 einstellen
[2] Visual Studio (C++) Projekt Eigenschaften
[3] Linker Einstellungen
[4] Zusätzliche Abhängigkeiten




→ zurück zum Hauptartikel: Praktikum SDE