Hallo Leute, kann ich den Speicher des mega64 in C selber aufteilen? In meinem Programm löse ich einen Software-Reset ala goto *((void**) 0); aus. Ich möchte aber alte Werte mit in die nächste Ausführung nehmen. Der Gedanke ist der, dass ich mir,z.B. ab 0x050 bis 0x060 einen Speicherbereich anlege in den ich meine zu rettenden Daten schreibe und mit dem Softreset dann nach 0x061 springe und somit meine Daten mitgenommen werden. Also goto *((void**) 0x061); P.S. Die Adressangaben sind nur Beispiele Geht sowas.....
bei meiner Suche bin ich auf sowas gestossen: int Retten _attribute_ ((section(".noinit"))); probiere das mal aus. scheint vielversprechend.
Was willst du machen? So wie ich dich verstehe, willst du mehrere (völlig) unabhängige Programme in einem Mega64 bei Bedarf laufen lassen. Vielleicht solltest du dein Projekt etwas weiter umreissen. Mag sein, dass das gehen könnte (bevor ich mich mal wieder zu weit aus dem Fenster lehne...). Der Sinn dabei bleibt mir aber verschlossen... Welchen Speicher willst du überhaupt teilen? Den Flash? Mit Klimmzügen kann sowas gehen (Bootloader-mässig)...
Ich denke du solltest dich erst mal von der Vorstellung lösen, dass ein goto *((void**) 0); deine Probleme löst, verabschieden. In einem anderen Thread hast du geschrieben, dass du dies machst um eine dynamisch aufgebaute Datenstruktur auf einfache Weise los zu werden. Ich finde einen Soft-Reset dafür keine gute Lösung. Die softwaretechnisch bessere Lösung ist immer noch die Datenstruktur korrekt wieder abzubauen.
Das mit dem Segment hat prima hingehauen. Vars die ich in diesem Seg anlege, werden durch den Softreset nicht neu initialisiert. Wenn ich die mit malloc angelegten doppelt verketteten Listen wieder mit free freigebe haut das nicht hin. Der Softreset räumt da richtig auf.
> Wenn ich die mit malloc angelegten doppelt verketteten Listen wieder > mit free freigebe haut das nicht hin. Der Softreset räumt da richtig > auf. Klar. Man kann als Zahnarzt auch mit dem Holzhammer arbeiten :-)
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.