Forum: Compiler & IDEs .asm vs .S, Verfahren zum Konvertieren


von Felix Jankowski (Gast)


Lesenswert?

Hi!

Gibt es irgendein Verfahren, Handbuch oder irgendwas woran man sich
halten kann, wenn man ein für AVR-Studio geschriebenes Projekt für den
gcc-ass umwandeln will. Ich hab ein Programm in asm, von welchem ich
einige Fuktionen von C aus aufrufen will. Daher mein Problem. Habe auch
schon das Tutorial nochmal gelesen und auch die Hilfe zur avr-libc, aber
irgendwie ist das alles Mist. U.U. werde ich ein Makro programmieren,
welches die Arbeit dann selbstständig erledigt.

Grüße und Danke,
Felix

von FeeJai (Gast)


Lesenswert?

Könnt mir ma einer den trick verraten was ma machen muss um hier im
Forum antwort zu bekommen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Eine Frage stellen, für die auch jemand eine Antwort hat. ;-)

Es hat offensichtlich noch keiner einen Automatismus verfasst,
um aus Atmel-Assemblercode gas-Assemblercode für den AVR zu
schreiben.  Allerdings sind die geänderten Pseudo-Ops dabei in
der Regel das kleinste Problem:

> Ich hab ein Programm in asm, von welchem ich
> einige Fuktionen von C aus aufrufen will.

Meistens sind derartige Assemblerstückchen ohne Rücksicht auf
irgendwelche Compiler-ABIs geschrieben worden.  Damit kannst du
diese nicht 1:1 aus einem C-Programm heraus aufrufen, sondern
musst ihnen entweder einen Wrapper voranstellen, der sämtliche
Register rettet und ggf. noch Parameter konvertiert (da fragt
sich dann nur noch der Sinn des Ganzen), oder aber du schreibst
den Kram gleich neu.  Bei letzterem kommst du vermutlich über
kurz oder lang dabei raus, dass du auch gleich alles in C
schreiben kannst.

Das wiederum erklärt dann, warum es noch niemand je bis zu
Ende gebracht hat, einen solchen Konverter zu schreiben...

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
Noch kein Account? Hier anmelden.