Ist es möglich die Generierung durch den GCC von Interruptvektoren zu unterbinden, um eine paar Bytes an Platz zu sparen?
Zwei Möglichkeiten: 1) Modifiziertes Linkerscript verwenden. 2) Option -nostartfiles für den Linker. Aber Vorsicht, dies entfernt noch mehr: Nullen von R1, Initialisierung des Stackpointers und Initialisierung der globalen Variablen ungleich Null (*). Das musst du dann ggf. selbst mit eigenem Code in einer .init-Section erledigen. (*) Und diese Liste erhebt keinen Anspruch auf Vollständigkeit. Möglich, dass es da noch mehr gibt, an das ich gerade nicht denke.
Vielen Dank für deinen Tipp, das Linkerscript werde ich mir ansehen. Interessant ist, daß ich bei der Initialisierung von Variablen eventuell auch noch etwas sparen kann. Viele Grüße Martin
@ Martin (Gast) >Ist es möglich die Generierung durch den GCC von Interruptvektoren zu >unterbinden, um eine paar Bytes an Platz zu sparen? Solche Tricks würde ich lassen. Bringt sehr wenig, kostet sehr viel. Die paar Bytes kann man leichter sparen, indem man sienen Code noch etwas aufräumt oder optimiert. Also viele Funktionsaufrufe, möglichst viele Funktionen mehrfach verwenden, Schleifen statt inlining etc. Hab ich mal in einem Projekt mit AVR 8515 gemacht, 4Bytes waren dann noch frei ;-) MfG Falk
Es siehr so aus, daß es nicht möglich ist die Generierung der Vektoren am Anfang eines Files zu unterdrücken. Wo kann man dies einstelle? Leider gibt es beim GCC kein Startupfile wie beim KEIL-Compiler. wo man z. B. auch diverse Adressen einstellen kann.
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.