Hallo, der avr-gcc scheint "Mist" zu übersetzen test.c -> test.obj, (entspr. makefile) siehe anhang daraus folgt dann daß der Stack offenbar nicht (richtig) initialisiert wird und das Programm beim ersten Benutzen einer Funktion abschmiert (die FAQ im Dokumentavr-libc-user-manual-1.0.3.pdf (die meinte J.Wunsch wohl mit "FAQ lesen bildet") habe ich gelesen). Wenn ich es inline in die main schreibe geht alles... Gruß joh
Hi FAQ lesen bildet! Bei deinem neuen Mega128 ist die Mega103C Fuse gesetzt. Damit arbeitet der 128 im 103 Kompatibilitätsmodus. Der Stackpointer wird aber für den 128 initialisiert. Dann geht halt der erste Funktionsaufruf schief. Matthias
Kleine Korrektur: der Funktions*aufruf* geht noch gut, aber der RET der ersten Funktion liest dann Unsinn statt einer Rücksprungadresse. Damit ist das typische Symptom, dass zwar die Funktion selbst noch ausgeführt wird, aber danach die Applikation abstürzt.
Hi abermals, also wenn ich mir mit Ponyprog mal die Fuses auslese, ist da bei 103 compatibility ein Haken was 0 also programmiert bedeuted. lt. Mega128 datasheet heißt das wiederum, das der im 128er Modus läuft... Gruß joh
Hi @Jörg W. Stimmt. Ich wollte das nicht soweit ausführen. @Jörg H. nein. Wenn M103C programmed ist läuft der 128 im 103 Modus. Matthias
Hi, @Matthias Oje, da hab ich wohl einen Inverter im Hirn :) Allerdings sah schon der Objektcode komisch (=es wurde beim Funktionsaufruf ein call zu Adr.0 erzeugt, wo ja eigentlich der Resetvektor steht?) deshalb hab ich ihn auch angehängt. Gruß joh
Hi das call 0x0 dürfte daher kommen das der Linker die Adresse noch nicht aufgelöst hat. Aber Jörg W. kann dir da sicher eher Auskunft geben. Bei solchen, vermeintlichen, Bugs des Compilers sollte man sich erstmal klarmachen das das eine absolute Grundfunktionalität des Compilers ist. Wenn das schon schief geht hat man entweder eine Pre-Alpha oder aber einen eigenen Denkfehler. Matthias
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.