Moin, moin, Ich habe ein Problem mit dem Verständniss der Ausgaben von avr-sze bzw. avr-nm. Im Quelltext sind folgende Globale Variablen definiert: fs_eepromB, fs_eepromM, fs_flashIC, und eepromB_file, eepromM_file, die mit jeweils 40 bzw. 14 Byte zu buche schlagen, diese Zahl entspricht der Größe, die man aus den Quelltext "lesen" kann und auch durch die Ausgabe von avr-nm bestätigt wird. Das macht zusammen 162 Byte (wenn mir meine Grundschullehrerin nicht was vom Pferd erzählt hat...) -> Datei avr_nm.txt, Zeilen 13-16 und 25-27 avr-size gibt aber für .data 156 byte an, was zu wenig erscheint, zumal ja auch noch einige Progmem-pointer hinzukommem. Selbst wenn die Progmem-Pointer nicht im Ram gehalten werden (wäre ja toll & ok) fehlen mir in der Ausgabe von avr-size immer noch 8 Byte... Wo liegt da mein Denkfehler, bzw. was ist nun richtig? Kompiliert wurde immer mit -o0. Vielen Dank Gruß Olias
Die Variablen liegen im Common-Block. avr-size kann sie daher nicht mit einbeziehen, weil sie erst später (beim Linken) einer konkreten Section (.data oder .bss) zugeordnet werden. Füge den Compiler-Optionen ein -fno-common hinzu.
Ok, dann hatte ich grundsätzlich was verwechselt... Vielen Dank! Nun ist .bss 162 byte groß - Prima. Nur frage ich mich jetzt was zum Henker da 156 Byte im .data-Bereich RAM klaut... Die Summe der im nm-listing im initialized data bereich (d/D) ist nicht mal 30 byte.. Ob die Symbole mit "r" in der "read only data section" ins RAM kopiert werden oder nur im ROM liegen kann man nicht mittels avr-nm prüfen? Die motivation Ram zu sparen ist wie immer gegeben, daher wäre es schön zu wissen was da so hungrig ist. Im Prinzip gehört diese Frage aber nicht mehr in diesen Strang. Wenn sie stört, einfach ignorieren.
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.