Gast
#1007074
Hi, ich schreib grad ein Programm in C für den Tiny13. Mein Code ist ca. 20 Byte zu lang für den Speicher, deshalb muß ich schnitzen wo ich kann. Im Disassembler ist mir schon vor längerem aufgefallen, daß der Compiler bei den Interrupt-Routinen die Register rettet, ob es Not tut oder nicht. Speziell ein Interrupt macht bei mir gar nix, außer daß er ausgelöst wird um den Controller wieder aufzuwecken. D.h. eigentlich reicht ein "reti" für den Interrupt, der Compiler rettet aber trotzdem r0,r1 etc. und restauriert sofort wieder alles brav - völlig überflüssig, das würde mir schon 18 Byte sparen! Jetzt meine Frage: Gibt es evtl. einen Compiler-Schalter, der das Retten der Register unterläßt bzw. in eigene Verantwortung stellt? Oder gibt es dafür einen anderen Weg (Interrupt-Funktion "per Hand" in Assembler in den C-Code packen und dort nur "reti" programmieren) und wie muß ich das dann machen? Gruß, magic.