Ist die Größe des von einem Programm auf einem Chip belegten Flash-Speichers basierend auf dem Inhalt und der Größe der .HEX-Datei möglich? Und wenn nicht, gibt es einen anderen Weg?Anzahl der belegten Flash-Speicher in Relation zur Anzahl der Bytes in einer .HEX-Datei
Hat ein Chip, der 32kB Flash-Speicher beansprucht, genau 32kB verfügbaren Flash-Speichers?
Beispiel:
Mark eine ungesunde Sorge um die Menge an Flash-Speicher auf seinem ATMEGA328P Mikroprozessor verbleibt, nachdem er Programme es eine zusammengesetzte .HEX Datei und avrdude Tool von Atmel bereitgestellt wird. Deshalb öffnet er die .HEX Datei mit einem Texteditor und zählt die Bytes:
: 100000000C9434000C943E000C943E000C943E0082 : 100010000C943E000C943E000C943E000C943E0068 : 100020000C943E000C943E000C943E000C943E0058 : 100030000C943E000C943E000C943E000C943E0048 : 100040000C943E000C943E000C943E000C943E0038 : 100050000C943E000C943E000C943E000C943E0028 : 100060000C943E000C943E0011241FBECFEFD8E04C : 10007000DEBFCDBF0E9440000C9453000C940000E2 : 100080008FEF84B987B985B1809585B988B180959E : 1000900088B92FEF83ED90E3215080409040E1F745
: 0A00A00000C00 000F0CFF894FFCF7D
: 00000001FF
Sein Ergebnis ist 115 Bytes insgesamt oder 118 mit ":". Mark erkennt jedoch, dass von diesen Bytes ein bestimmter Betrag Prüfsummen und Flags ist. Wenn Mark avrdude ausführt, um die Hardware mit seinem Code zu flashen, teilt ihm das Tool mit, dass die Datei 170 Bytes enthält. Dies verwirrt und schüchtert ihn ein, da der gesamte freie Flash-Speicher auf dem Chip nur 188 Mal mehr ist als das, was das Tool ihm über die Anzahl der Bytes in der Datei gesagt hat. Er bricht in Tränen aus.
Um Marks emotionale Ausfälle zu vermeiden, wäre es gut, die Anzahl der Bytes im Flash-Speicher schätzen zu können, die von einem in der .HEX-Datei gespeicherten Programm belegt sind.
P.S. Mark möchte in Zukunft ein viel billigeres Low-End-System verwenden und muss wissen, wie viel Speicher sein Programm auf einem solchen System belegt.
In der Tat scheint die Verwendung der vorhandenen Toolchain Tools der einfachste und schnellste Weg. Danke für die Antwort. Der Vorteil beim Schreiben einer Frage ist, dass man immer mehr interessante Informationen daraus bekommt! – NoobPointerException