Hi. Ich hätte da mal ein Frage zur Größe von hex.files und der Speichergröße von Microcontrollern. Laut Datenblatt hat der ATmega169 16K Bytes In-System Programmable Flash und derATmega8 8K Bytes In-System Programmable Flash Das sollte IMHO der Speicher sein, in dem mein Programm drin steht? Jetzt habe ich mal ein kleines, wohl nicht ganz sauberes Programm geschrieben das allerdings ein main.hex erzeugt, dass 32.2kB gross ist, wenn man dem Dateimanager von Windows glauben darf. Jetzt habe ich Angst, dass ich mir viel Mühe mit der Hardware mache und das Programm am Ende da garnicht reinpasst. Versuchsweise habe ich es jetzt mal in den 16K - Speicher des Butterfly (ATmega169) geschrieben was zu meinem großen Erstaunen auch funktionierte. Das Hex-file. das ich zuvor zur Sicherheit von der Butterfly-Software gelesen und danauch auch wieder dort reingeschrieben habe war mit 45KB auch beutlich größer als die 16KB die laut Datenblatt in den controller reinpassen. Wie bekomme ich jetzt raus, ob mein programm in den Speicher passen wird, oder nicht? Das spuckt der compiler aus: Size after: main.elf : section size addr .data 0xa54 0x800100 .text 0x283a 0x0 .bss 0xc9 0x800b54 .noinit 0x0 0x800c1d .eeprom 0x0 0x810000 .debug_aranges 0x8c 0x0 .debug_pubnames 0x3db 0x0 .debug_info 0xb75 0x0 .debug_abbrev 0x406 0x0 .debug_line 0xeb0 0x0 .debug_str 0x3e0 0x0 Total 0x59c9
High Low Einsteiger, wandle oder Speicher es ins BIN Format. dann solltest Du die richtige Größe sehen. HEX Dateien haben auf Grund des Formates viel unnötige Luft drin. Stephan
Jag dein Hex-File z.B. mal hier durch http://www.keil.com/download/docs/7.asp und schau dir dann das enstandene _Binär_-File mal in der Größe an. Hex-Files sind in ADCII codiert und enthalten zusätzlich noch die Adressen, Prüfsummen, etc.
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.