Hallo, ich programmiere nun schon seit einiger Zeit die AVRs direkt in Asemmbler. Und wollte mal was "neues" ausprobieren. Also hab ich kurzerhand mir WinAVR runtergeladen und spiele nun damit rum. Meine Frage: Gcc kann ja natürlich auch asm dateien übersetzen (.s), und wie: a) kommuniziere ich zwischen C <-> ASM (mir wäre am liebsten über Register, SRAM ist auch ok) b) wie sorge ich dafür, dass das C programm meinem ASM programm nicht in die Quere kommt. Ich wollte gerne interrupte verwenden und die mit asm abarbeiten. In erster Linie wollte ich C für komplizierte berechnungen einsetzen usw. Gerade weil der interrupt Teil zeitkritisch ist und die Berechnungen nicht. Gibts da irgendwelche infos zu? MfG V3
(Btw., mit *Prozess*kommunikation hat das nix zu tun, wenngleich es natürlich eine solche Zwischen gcc und avr-as gibt.) > Gcc kann ja natürlich auch asm dateien übersetzen (.s), und wie: Normalerweise übrigens .S, damit sie durch den Präprozessor gezogen werden und du Dinge aus <avr/io.h> nehmen kannst. > a) kommuniziere ich zwischen C <-> ASM (mir wäre am liebsten über > Register, SRAM ist auch ok) Bitte lies dir erstmal die avr-libc-Doku durch. Die zu deiner Library passende hast du mit WinAVR auf der Platte, die aktuelle Doku ist optisch ein wenig ansprechender, da solltest du insbesondere durchlesen: http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_reg_usage http://www.nongnu.org/avr-libc/user-manual/assembler.html http://www.nongnu.org/avr-libc/user-manual/group__avr__sfr__notes.html ggf. auch: http://www.nongnu.org/avr-libc/user-manual/inline_asm.html Eigentlich aber natürlich alles... > b) wie sorge ich dafür, dass das C programm meinem ASM programm nicht > in die Quere kommt. Indem du dich an oben zitierte Registerkonventionen hälst innerhalb deiner Assemblerteile. Die werden letztlich vom Compiler diktiert, die Assemblerprogramme müssen sich da unterordnen (oder es ufert in weitreichende push/pop-Orgien aus). > Ich wollte gerne interrupte verwenden und die mit asm abarbeiten. Naja, wenn du meinst. In 95 % der Fälle kann man auch die locker in C 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.