woher weis man eigentlich wann ein flash voll mein programmiergerät (bzw Softwarwe) programmiert den my egal wie groß die hex datei auch war
Man kann die HEX Datei mit einem Hex-Editor ansehen bzw. in einen Binärfile umwandeln. Z.B. mit dem Programm WINHEX. Dann sieht man, welcher Adressbereich "gefüllt" ist. Eigentlich muss es auch eine .LST Datei oder .MAP Datei o.ä. geben (Output des Linkers) wo das lesbar drinsteht. Wenn man nur die HEX Datei hat, braucht man den o.a. Editor. Und man muss natürlich wissen, wieviel Speicher man insgesamt zur Verfügung hat. Oftmals ist eine "Lücke" zwischen dem Programmbereich beginnend bei Adresse 0x0000 und den Interrupt-Vektoren (Tabelle), die oftmals am oberen Speicherende liegt (bei uPs), z.B. ab 0xFF80..0xFFFF. Dann steht ab 0x0000 viel Programmcode, hexadezimal Bytes, unterschiedliche Werte. Irgendwann kommen nur noch "FF" Werte, da ist das Programm zu Ende ; ganz weit oben kommen die Interrupt-Vektoren. Diese "Lücke", welche i.d.R. mit "FF" belegt ist (weil in der HEX Datei u.U. gar nicht enthalten und somit Defaultwert FF entsprechend "gelöscht" Zustand), diese "Lücke" ist der noch freie Speicherbereich. Die Speicheraufteilung des uP muss man aber auch kennen. Manche uPs haben "eingebaute" Lücken, die nicht befüllbar sind.
Im Regelfall zeigt dein Compiler dir an, wie groß das Programm ist. Anhand der Grösse des .hex-Files kann man das eher schlecht beuteilen, da diese Dateformat noch einen "Overhead" ("Adress-und Checksum-Brimborium"?) besitzt.
Eine .hex-Datei ist mindestens 2,3x größer als die eigentliche Binärdatei, also in ein 16k Flash paßt maximal etwa eine 36k .hex-Datei.
Ich verwende den Hammer und ein paar Nägel - das ist doch völlig egal - hast Du denn die Antworten jetzt auch gelesen?!
Ich benutze lieber einen Akkuschrauber und Kreuzschlitz-Schrauben. Prinzipiell sollte es aber möglich sein, aus der intel-hex-Datei die Programmgrösse durch auszählen der Bytes festzustellen. Viel Spaß dabei!
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.