Gast
#363989
Hallo Leute, wie ermittelt man eigentlich Ruecksprungsadresse in C, und wie kehre ich dann auf diese adresse zurück.
|
Anzeige
|
Ruecksprungsadresse
Gast
#363989
Hallo Leute, wie ermittelt man eigentlich Ruecksprungsadresse in C, und wie kehre ich dann auf diese adresse zurück. Wohin willst Du zurückspringen? Aus einer Funktion zum Aufrufer? das geht automatisch am Funktionsende oder mit "return", musst Du dich in C nicht drum kümmern. /Ernst
Gast
#363991
Ich will eine Multitasking OS programmieren, da hier jeder Task in eine bestimmte Zeitscheib ablaufen muss.
Gast
#363992
Mich würde dabei mal interessieren, wie ich eine Rücksprungadresse vom Stack sauber in C entfernen könnte, wenn ich aus einem Unterprogramm eben nicht wie gewohnt zurückkehren möchte.
Gast
#363993
@Birger garnicht. Denn Du weißt ja nicht, welche Variablen er noch so auf dem Stack abgelegt hat. Peter
Gast
#363994
ich weiss es jetzt umgefähr man muss den ganzen prozessor in einer Ram retten wie das ganz fkt weiss ich noch nicht mehr dazu später. Guck dir doch einfach die X verschiedenen OSe an, die's schon gibt. Kurz: dieser Teil wird wohl praktisch immer in Assembler gezimmert.
Gast
#363996
> Mich würde dabei mal interessieren, wie ich eine Rücksprungadresse > vom Stack sauber in C entfernen könnte, wenn ich aus einem > Unterprogramm eben nicht wie gewohnt zurückkehren möchte. Wozu? Du könntest höchstens mit setjmp/longjmp arbeiten.
Gast
#363997
Hallo, schaut Euch doch einfach FreeRTOS (www.freertos.org). Das ist schön dokumentiert die ganze Rücksprungadressenverrenkung in Assembler ausgeführt. Es ist (wie schon meine Vorredner so ähnlich sagten) keine gute Idee, zu versuchen den Compiler zu "bescheißen", in dem man den Stack mit Hochsprachenaufrufen oder innerhalb von Hochsprachenkonstrukten manipuliert. Das führt meist zu gewissen Unfällen. MfG, Daniel. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|