Ich bitte um eine kurze Bestätigung, ob mein Lösungsansatz, d.h. die von Hand eingestellte Stack-Größe so richtig ist !
Bei Verwendung einer tasklokalen, globalen Variablenliste erhielt ich beim Raspberry Pi stets den Fehler: C0427
Zitat:
Der Zugriff auf Informationen über die aktuell ausgeführte Task erfordert Kenntnisse über die maximale Größe des Stacks, die vom Zielsystem unterstützt wird.
Anscheinend ist der __CURRENTTASK-Operator die Ursache, denn der
Zitat:
...wird nur auf Zielsystemen unterstützt , bei denen die Zielsystemeinstellung auf einen Wert > 0 gesetzt ist.
Derlei Einstellungen sind in der CoDeSys-IDE nirgends zu finden, wohl aber in der Gerätebeschreibungsdatei des Raspberry-Pi, und dort steht 0
Ich war so frech und habe einfach die Linux-übliche Stackgröße von 8 MB eingetragen (8388608). Jetzt scheint alles zu funktionieren.
Ist das so richtig ?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
der Fehler wird bereits beim Compilieren angezeigt - zu einem Zeitpunkt also, wo es noch gar keine Verbindung zur RTE gibt. Trotz dieser Logik habe ich Ihren Vorschlag getestet, doch es half nichts.
Das Problem ist grundsätzlicher Natur und ich habe es nicht eilig, denn ich könnte die Aufgabe wie bisher mit Semaphoren lösen. Das erscheint mir jedoch bei Variablen in Visualisierungen als recht umständlich. Tasklokale Variablenlisten werden in der F1-Hilfe für Multicore-Systeme angepriesen, um dort zykluskonsistent Variablen über mehrere Tasks hinweg auszutauschen, wobei nur eine Task das Schreibrecht hat - sofern ich das richtig verstanden habe. Und genau das möchte ich mit meinem Raspberry mit MC-Lizenz einfach mal ausprobieren.
Abgesehen von diesem Compiler-Error fehlt mir bislang das Wissen bzw. eine tiefergehende Dokumentation der Raspberry-RTE und deren Konfigurationsmöglichkeiten. Ebensowenig besitze ich das CODESYS Static Analysis Tool. Ich denke, es geht auch gar nicht um die absolute Stack-Größe, sonder um einen Maximalwert für den Compiler, richtig Und warum ist diese Obergrenze nicht schon in der Gerätebeschreibungsdatei vorgegeben ? Viele interessante Fragen, aber ehrlich gesagt möchte ich Ihre freundliche Hilfe nicht überstrapazieren.
Einen Guten Rutsch in Neue Jahr wünscht Ihnen
G. Nennemann
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Können Sie mir sagen, ob Sie wussten, wie Sie das Problem beheben können? Meiner Meinung nach müsste ich vielleicht die „Stackgröße“ ändern, die in früheren Versionen von CODESYS erlaubt war
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich bitte um eine kurze Bestätigung, ob mein Lösungsansatz, d.h. die von Hand eingestellte Stack-Größe so richtig ist !
Bei Verwendung einer tasklokalen, globalen Variablenliste erhielt ich beim Raspberry Pi stets den Fehler: C0427
Anscheinend ist der __CURRENTTASK-Operator die Ursache, denn der
Derlei Einstellungen sind in der CoDeSys-IDE nirgends zu finden, wohl aber in der Gerätebeschreibungsdatei des Raspberry-Pi, und dort steht 0
Ich war so frech und habe einfach die Linux-übliche Stackgröße von 8 MB eingetragen (8388608). Jetzt scheint alles zu funktionieren.
Ist das so richtig ?
Hi,
also einfacher gehts wenn du es in
/etc/CODESYSControl_User.cfg
einstellst:
Beispiel:
[SysTask]
StackSize=0x512000
Habe aber noch nicht verstanden warum du es überhaupt machen musst...
Grüße
Edwin
Hallo Mr. Schwellinger,
der Fehler wird bereits beim Compilieren angezeigt - zu einem Zeitpunkt also, wo es noch gar keine Verbindung zur RTE gibt. Trotz dieser Logik habe ich Ihren Vorschlag getestet, doch es half nichts.
Das Problem ist grundsätzlicher Natur und ich habe es nicht eilig, denn ich könnte die Aufgabe wie bisher mit Semaphoren lösen. Das erscheint mir jedoch bei Variablen in Visualisierungen als recht umständlich. Tasklokale Variablenlisten werden in der F1-Hilfe für Multicore-Systeme angepriesen, um dort zykluskonsistent Variablen über mehrere Tasks hinweg auszutauschen, wobei nur eine Task das Schreibrecht hat - sofern ich das richtig verstanden habe. Und genau das möchte ich mit meinem Raspberry mit MC-Lizenz einfach mal ausprobieren.
Abgesehen von diesem Compiler-Error fehlt mir bislang das Wissen bzw. eine tiefergehende Dokumentation der Raspberry-RTE und deren Konfigurationsmöglichkeiten. Ebensowenig besitze ich das CODESYS Static Analysis Tool. Ich denke, es geht auch gar nicht um die absolute Stack-Größe, sonder um einen Maximalwert für den Compiler, richtig Und warum ist diese Obergrenze nicht schon in der Gerätebeschreibungsdatei vorgegeben ? Viele interessante Fragen, aber ehrlich gesagt möchte ich Ihre freundliche Hilfe nicht überstrapazieren.
Einen Guten Rutsch in Neue Jahr wünscht Ihnen
G. Nennemann
Können Sie mir sagen, ob Sie wussten, wie Sie das Problem beheben können? Meiner Meinung nach müsste ich vielleicht die „Stackgröße“ ändern, die in früheren Versionen von CODESYS erlaubt war