Hallöle, es ist nun endlich soweit! Nachdem ich sozusagen für einen Appel und ein Ei eine ganze Stange 1200er erstanden habe, bin ich als eingefleischter C-fan nun doch gezwungen, mich mit diesem grauseligen AVR Assemblercode auseinanderzusetzen. Da ich allerdings einen gewissen Komfort der avrgcc-Umgebung noch nutzen will, kam es mir in den Sinn, meine Sourcen dort als .S Dateien zu schreiben. Dies bietet einem z.B. die Möglichkeit, die C Bibliotheksfunktionen unter Assembler noch nutzen zu können, also es bleibt noch ein gewisser Vorteil. Allerdings habe ich bislang nur Beispiele von Unterprogrammen gesehen, die dann von einem C Hauptprogramm aufgerufen werden. Mir fehlt jedoch ein Muster, wie ich nun ein komplettes Hauptprogramm als Assembler-Source definieren kann. Ob ich z.B. die Interruptvektoren und den Stackpointer selbst setzen muss oder ob das der Assembler für mich übernimmt bzw. ob man dort eine Routine, wie z.B. gcrt1.S einbinden kann, die dann das ganze "Vorgeplänkel" für einen übernimmt. Bin für sachdienliche Hinweise die zur Lösung dieses äusserst schwierigen Falls beitragen sehr dankbar! mit :-) Grüssen, Peter
Danke für den Hinweis, die Datei kenne ich schon. Aber dieses Dokument beantwortet meine Frage nicht, da ich ja für den AT90S1200 kein C programmieren kann und somit auch kein inline-Assembler in einer C Source. Ich möchte mein Hauptprogramm direkt als Assembler Source für den avr-gas schreiben. Dies ermöglicht mir, die Verwendung der Makros in macros.inc und die Verwendung der C-Library Routinen, deren Aufruf unter Assembler in der Datei ctoasm.inc beschrieben ist. Naja, vielleicht ein hoffnungsloser Fall, aber manchmal finden sich ja doch interessante Hinweise. Hat vielleicht noch jemand eine Idee? Gruss, Peter
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.