Hallo, Ich arbeite momentan unter Windows XP mit Matlab 7.1.0.246(R14)Service Pack 3 und erzeuge mit Real-Time-Workshop C-Code für die Implemetierung meiner Mikrocontroller TRICORE TC1796 von Infineon. Ich habe auch schon bei Real-Time-Workshop die Hardware-Konfiguration erstellt, die den TC1796 unterstüzt. Jetzt beim compilieren dieses Matlab-C-Codes mit dem TASKING Compiler v2.3r1 von Altium bekomme ich unter anderem folgende Fehlermeldungen: ctc E201: ["simstruc.h" 281/1] #error Unrecognized use. ctc E201: ["simstruc.h" 361/1] #error Must define one of RT, NRT, MATLAB_MEX_FILE, SL_INTERNAL, or FIPXT_SHARED_MODULE ctc E201: ["simstruc.h" 484/1] #error Unhandled case ctc E208: ["simstruc.h" 1288/5] syntax error - token "<basic-type>" inserted before "mxArray" ctc E208: ["simstruc.h" 1288/19] syntax error - token ";" inserted before "*" ctc E208: ["simstruc.h" 1288/19] syntax error - token "<basic-type>" inserted before "*" ctc E208: ["simstruc.h" 1999/6] syntax error - token "<basic-type>" inserted before "mxArray" ctc I805: ["simstruc.h" 1999/6] start of current parameter declaration ctc E208: ["simstruc.h" 1999/14] syntax error - token "," inserted before "*" ctc E208: ["simstruc.h" 1999/14] syntax error - token "<basic-type>" inserted before "*" ctc I805: ["simstruc.h" 1999/14] start of current parameter declaration Und ein Teil des automatisch erzeugten Codes sieht so aus: /*====================================* * Model reference sim target is an RTW generated * S-Function (from the point view of Simstruct). */ # if defined(MDL_REF_SIM_TGT) # undef MATLAB_MEX_FILE # define MATLAB_MEX_FILE (1) # undef RTW_GENERATED_S_FUNCTION # define RTW_GENERATED_S_FUNCTION (1) # endif /*====================================* * Determine => MODE: SINGLE-TASKING OR MULTI-TASKING * * This must come after the inclusion of simstruc_types.h */ #if defined(MULTITASKING) # undef SS_MULTITASKING # define SS_MULTITASKING (1) #endif /*====================================* * Determine => MODE: SIMULATION OR GENERATED CODE */ #if defined(MATLAB_MEX_FILE) || defined(SL_INTERNAL) || defined(FIPXT_SHARED_MODULE) # undef SS_SIM # define SS_SIM (1) #else # undef SS_RTW # define SS_RTW (1) #endif #elif defined(MATLAB_MEX_FILE) /* Used in mex function that is NOT an S-Function mex */ /* * Currently, plain mex functions will be treated as if they are * normal sfunctions. * # undef SS_MEX # define SS_MEX (1) */ # undef SS_SFCN_NORMAL # define SS_SFCN_NORMAL (1) #else # error Unrecognized use. #endif /*====================================================================== =====* * BEGIN SECTION * CHECK PROPER USAGE * * Issue errors if incompatible modes have been selected *======================================================================= ====*/ #if (defined(RT) + defined(NRT) + defined(MATLAB_MEX_FILE) + defined(SL_INTERNAL) + defined(FIPXT_SHARED_MODULE) != 1) # error Must define one of RT, NRT, MATLAB_MEX_FILE, SL_INTERNAL, or FIPXT_SHARED_MODULE # if defined(RT) # error defined(RT) # endif # if defined(NRT) # error defined(NRT) # endif # if defined(MATLAB_MEX_FILE) # error defined(MATLAB_MEX_FILE) # endif # if defined(SL_INTERNAL) # error defined(SL_INTERNAL) # endif # if defined(FIPXT_SHARED_MODULE) # error defined(FIPXT_SHARED_MODULE) # endif #endif # if !defined(TYPEDEF_MX_ARRAY) # define TYPEDEF_MX_ARRAY typedef real_T mxArray; # endif #else /* * Error */ # error Unhandled case #endif struct _ssSFcnParams { int_T dlgNum; /* Number of S-function parameters passed in */ mxArray **dlgParams; /* The S-function parameters */ uint_T *dlgAttribs; /* Disable parameter changes during simulation?*/ /* union preserves the memory map of the Simstruc; the size of an integer * is always less than or equal to that of a pointer */ union { int_T numRtp; void *placeholder; } numRtp; ssParamRec **rtp; }; Jetzt weiß ich nicht was ich zu tun habe und würde mich sehr auf jede Hilfe freue. Ich bedanke mich schon ein Mal für die Antworten. Viele Grüße. Richard
Entweder den ganzen Code posten, da es automatisch erzeugter Code ist lohnt isch das erstmal nur bedingt. poste mal die Zeilen um Zeile 281 aus simstruc.h und markiere zeile 281. Vielleicht sieht man es sofort.
Dann schau Dir doch mal die Fehler genauer an. Es beginnt mit Präprozessor-Fehler. Wahrscheinlich ist MDL_REF_SIM_TGT nicht definiert. Kurz deine Build-Umgebung ist nicht richtig konfiguriert.
Ok, werde jetzt wieder die Konfiguration anschauen vielleicht komme ich dann weiter. Anhang: simstruc.h ( für diejenigen, die den Code genauer anschauen möchten)
Ok, werde jetzt wieder die Konfiguration anschauen vielleicht komme ich dann weiter. Anhang: simstruc.h ( für diejenigen, die den Code genauer anschauen möchten)
<draufguck> "igitt" - den möchte ich nicht debuggen :-) @Richard: Sorry, da kann ich nicht helfen - meine Herangehensweise wäre anhand des füchterlichen Quelltextes wahrscheinlich, mir ein kleines "Flußdiagramm" (trifft es am ehesten) zu zeichnen, woraus ersichtlich wird, wann und wo die Strukturen etc. definiert werden (natürlich nur die, die Fehler erzeugen) und wovon sie abhängen. Das ist zwar zeitintensiv, aber nach getaner Arbeit kann man das dann abheften, und beim nächsten Mal das Problem schneller lösen...
Hallo, ich habe das Problem gelöst, in dem ich jetzt meinen Code nicht mit Real-Time Workshop (grt.tlc) sondern mit Real-Time Embedded Coder (ert.tlc) automatisch erzeuge. (alle sind Toolboxen von Matlab/Simulink) So kann ich den Code fehlerfrei für meinen Embedded Mikrocontroller compilieren und ich benötige nicht die Datei "simstruc.h" einzubinden und zu konfigurieren.
Jetzt habe ich ein einfach blödes Syntax-Fehler beim kompilieren leider weiß ich mometan nicht woran es liegen könnte. Ein paar tipps wären echt sehr hilfreich TASKING program builder v2.3r1 Build 078 SN 00000000 Compiling and assembling "datei_code.c" ctc E208: ["datei_code.c" 38/1] syntax error - token ";" inserted before "{" ctc E208: ["datei_code.c" 52/1] syntax error - token ";" inserted before "{" ctc E208: ["datei_code.c" 90/1] syntax error - token ";" inserted before "{" 3 errors, 0 warnings wmk: *** action exited with value 1.
Hallo Richard, ich befasse mich schon längerem mit dem RTW embedded coder. Da mir bisher nicht bekannt war, dass der TriCore als embedded target existiert, würde ich gerne mehr darüber erfahren, welches tlc-file du verwendest, bzw. welche Anpassungen du im ert.tlc vorgenommen hast und wie du den Tasking Compiler eingebunden hast. Außerdem wäre dir sehr dankbar, wenn ich dich unter deiner e-mail adresse erreichen könnte. mfg Günter Fambach
Hallo Günter, tut mir leid dass ich mich früher nicht gemeldet habe. Aber als ich hier nicht viele Antworten bekam hatte ich das Forum nicht mehr angeguckt. Und die letzte Monate hatte ich viel zu tun gehabt und mein Projekt mit dem Tricore ist auch längst zu ende gegangen. Aber wenn ich noch für irgend etwas behilflich sein kann, dann melde dich unter folgende Email: gaetan_richard2004@hotmail.com mfg Richard
@Steffen Hallo Steffen, schaue die Datei im Anhang, da sind schnelle Schritte um mit Real-Time Wokshop (RTW)Code zu generieren. Dafür brauchst du RTW Embedded Coder (ERT) Toolbox, weil grob gesagt Mikrocontroller wie der Tricore nur mit ERT arbeiten sonst bekommt man Syntax-Fehler wie oben mit "simstruct.h" (von Matlab-Support gesagt). Genaue Schritte einfach selber rtw_getting_started Datei lesen. @Holger Hallo Holger, ich würde gern wissen was für Syntax-Fehler du hast, sonst kann nicht viel helfen. Vielleicht hier ein paar im Forum packen, da können noch mehr helfen. Aber es wie welche bei mir oben aussehen, dann muss du gucken ob du alles richtig definiert hast (Variablen und Funktionen). Und nicht nur wo der Fehler gezeigt wird, die Fehler sind meistens weiter weg... Hoffe es kann euch weiter helfen. Gruß. Richard
Hallo, ich arbeite in meine Schule in Frankreich, um ein Atmel controller zu programmieren mit Matlab (RTW) und AVR. Ich suche informationnen auf Englisch, Deutsch oder Franzosisch. Ich muss sagen dass ich habe kein kenntnisse darüber. Zwei Tag Früher wusste ich nor nicht was ein microcontroller ist! Danke schon im voraus. Hélène
Hallo, hat es mitlerweile jemand geschafft das auf einem avr zum laufen zu bringen? Wenn ja dann wäre ich froh jemand die dazugehörigen dateien posten könnte :-) Gruß Dennis
@ Gaetan Richard: Leider kam per email keine Antwort; wie ist denn der Stand? Kann man ggf. darauf aufbauen? Grüße Olaf
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.