Größe der *.Hex datei verkleinern

Gast #5709
Lesenswert?
• ▲
▼
Hallo,

nachdme ich nun mehrer (2 C-Dateien test.c und lcd.c) in ein hex 
kompiliert habe. ist die größe auf 4 Kb angewachsen. leider zu groß für 
meinen 4433.
Welche Compiler und Linker flags solle ich sinnvollerweise nehmen  wenn 
ich 2 oder mehrer C-dateien habe. Da ich beim test alles in einer datei 
hatte und die *.hex nach dem aufteilen wesentlich größer ist vermute ich 
das man hier mittels den flags was ändern kann.

Hat irgend jemand noch eien Idee ??


Gruß Bernd
Gast #5713
Lesenswert?
• ▲
▼
im avrfreaks forum schwirrt ein tool rum nennt sich avr-sizex.
das kann man in avr_make file einbinden...dann sieht die ausgabe so aus 
wie unten..find ich ganz nützlich.
wenn du es nicht findest sag bescheid ich lade es dann mal hier hoch.


   text     data      bss      dec      hex  filename
    188        0        2      190       be  rtctest.elf
avr-sizex --mcu at90s8515 rtctest.elf

    Flash     SRAM     EEPROM
    -----     ----     ------
       2%       4%         0%

Errors: none
Gast #5717
Lesenswert?
• ▲
▼
@BAB:
avrsize funktioniert prima, ich kann es jedoch nicht in das MAKE-File 
einbinden.

Habe es so in avr-make eingefügt wie in der README beschrieben, der 
compiler zeigt dennoch die alte größenangabe an.
Ich benutze avrgcc-3.0.2. Wie hast Du das eingebunden?

Gruß Jonas
Gast #5720
Lesenswert?
• ▲
▼
Also mir macht das Programm keine Freude...

Ich habe jetzt meine avr_make so umgestrickt:

>size:
>  $(SIZE) $(TRG).elf
>  avr-sizex --mcu $(MCU) $(TRG).elf

Das ist der relevante Teil aus meinen Project-Makefiles:

>include $(AVR)/avrfreaks/avr_make
>
>$(TRG).o : $(TRG).c

Aber er zeigt mir eben nichts an... Was ist denn bitte falsch?
Gast #5722
Lesenswert?
• ▲
▼
ist das wirkliche Program wirklich soviel kleiner wie das *.hex file?
Mein Programm hat im Hexfile ueber 2KB. Er sagt mir aber das wenn ich
das in meinen AT90S2313 (2KB Speicher) einbrenne, nur 32% belegt sind,
kommt das hin, oder ist da was falsch?
Gast #5723
Lesenswert?
• ▲
▼
Ja, 32 % kommt ungefähr hin.
Wenn man sich eine .hex Datei ansiehst stellt mann fest, dass jedes
Byte als Hexadezimale Zahl dargestellt ist, also mindestens 2 Zeichen
belegt. Hinzu kommen noch Zeichen für neue Zeilen und am Anfang jeder
Zeile steht meist noch die Speicheradresse.

Eine .bin Datei ist dagegen so kodiert, dass sie dierkt die Zeichen
enthält, die auch später im MCU stehen werden. Somit dürfte diese in
der Größe ziemlich genau dem entsprechen, was an Controller Speicher
belegt wird.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.