Hallo
Ich möchte gerne aus mehreren Intel-HEX-Files ein eiziges machen. Also
hintereinander an hängen. Weiß da Jemand ein Programm mit dem soetwas
möglich ist? Brauchwe soetwas weil ich ein Eprom auslesen möchte das
größer ist als das es der Programmer unterstützt, deshalb habe ich dann
mehrere HEX-files die ich nacher wieder zusammenfügen möchte. Und gibt
es ein Programm mit dem man zwei HEX-Files vergleichen kann?
Bastlwastl schrieb:> Und gibt> es ein Programm mit dem man zwei HEX-Files vergleichen kann?
Gehe mal in ein Kommadozeilenfenster (dos Box) in deinem windows und
gebe "help fc" ein.
Ansonsten bringt "dateien vergleichen" bei Google fast 2 Millionen
Treffer
wie wärs zur abwechslung mal mit DOS und copy
Kopiert eine oder mehrere Dateien an eine andere Position.
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B] Quelle [/A | /B]
[+ Quelle [/A | /B] [+ ...]]
[Ziel [/A | /B]]
Quelle Bezeichnet die zu kopierende(n) Datei(en).
/A Weist auf eine ASCII-Textdatei hin.
/B Weist auf eine Bin„rdatei hin.
/D Zieldatei kann entschlsselt erstellt werden.
Ziel Bezeichnet das Verzeichnis und/oder Dateinamen der neuen
Datei(en).
/V šberprft, ob die Dateien richtig geschrieben wurden.
/N Verwendet den Kurznamen (falls vorhanden), beim Kopieren
einer Datei mit einem Nicht-8Punkt3-Namen.
/Y Unterdrckt die Best„tigungsaufforderung beim
šberschreiben
vorhandener Zieldateien.
/-Y Fordert beim šberschreiben vorhandener Zieldateien zum
Best„tigen auf.
/Z Kopiert Netzwerkdateien in einem Modus, der einen
Neustart
erm”glicht.
/L Wenn die Quelle eine symbolische Verknpfung ist, wird
die
Verknpfung anstelle der eigentlichen Datei, auf die die
Verknpfung zeigt, zum Ziel kopiert.
Die Option /Y ist m”glicherweise in der Umgebungsvariablen COPYCMD
voreingestellt. Dies wird durch /-Y auf der Befehlszeile berschrieben.
Standardm„áig wird beim šberschreiben zum Best„tigen aufgefordert, auáer
wenn der COPY-Befehl innerhalb einer Batchdatei ausgefhrt wird.
Um Dateien aneinander zu h„ngen, geben Sie eine einzelne Datei als Ziel
an,
aber mehrere Dateien als Quelle (unter Verwendung von Platzhaltern oder
in der Form: Datei1 + Datei2 + Datei3).
siehe letzten satz mit dem Parameter /B für binärdatei
aber bei hex ist das nicht nötig aber schhadet auch nicht
und zum vergleich gibt es comp das gute alte DOS
never ever schrieb im Beitrag #3116714:
> wie wärs zur abwechslung mal mit DOS und copy
Das bringt einen aber nicht weiter.
Denn mehrere einzelne Intel-HEX-Dateien zu einer einzigen
zusammenzufassen ist mehr als einfach nur die Fileinhalte
aneinanderzuhängen.
Auch wenn es auf den ersten Blick nicht so aussieht, aber
Intel-Hex-Files haben auch so etwas wie eine interne Struktur. Und genau
diese Strukturen müssen zusammengemerged werden und nicht einfach nur
aneinandergehängt.
Karl Heinz Buchegger schrieb:> Und genau> diese Strukturen müssen zusammengemerged werden und nicht einfach nur> aneinandergehängt.
Wenn man statt einer Datei für ein EProm 27C1001 zwei für 27C512
ausgibt, fängt jede der Dateien bei der Adresse 0 an, schon deshalb ist
hintereinanderhängen witzlos. Bei Binärdateien, die nur die rohen Bytes
enthalten, geht das mit copy usw.
Mit der Software zum Programmer lässt sich das auch mit HEX handeln, ich
kann z.B. 27C1001 spezifizieren und die erste Datei einlesen, die belegt
dann die untere Hälfte, dann wird die 2. Datei eingelesen, aber mit
einem Offset von 64kBytes. Geht das nicht, kann man auch die 2 Datei
zuerst einlesen und 64k nach oben verschieben, dann die 1. einlesen.
Gruss Reinhard
Karl Heinz Buchegger schrieb:> Denn mehrere einzelne Intel-HEX-Dateien zu einer einzigen> zusammenzufassen ist mehr als einfach nur die Fileinhalte> aneinanderzuhängen.> Auch wenn es auf den ersten Blick nicht so aussieht, aber> Intel-Hex-Files haben auch so etwas wie eine interne Struktur.
Na ja ich habe sie mir mal kurz angesehen. (Das letzte mal vor 20 Jahren
:-)).
7Bit ASCII und pro Zeile einen Record.
Normalerweise Startrecord, n mal Datenrecord und Stoprecord.
Das heisst eigentlich könnte man die mit 10min Einarbeiten mit einem
normalen Texteditor zusammenfassen.
Karl Heinz Buchegger schrieb:> Auch wenn es auf den ersten Blick nicht so aussieht, aber> Intel-Hex-Files haben auch so etwas wie eine interne Struktur. Und genau> diese Strukturen müssen zusammengemerged werden und nicht einfach nur> aneinandergehängt.
insofern es keine Zeilen gibt, in denen sich die Adressbereiche
überschneiden sollte es doch durch hintereinanderhängen der Datenzeilen
(also ohne die End-Markierung) gehen. Hab ich auch schon mehrmals
praktiziert.
Wenn ich ein großes Hex mit Bootloader und Applikation bauen wollte.
Here Is Johnny schrieb:> mit notepad++ kannst du auch das eine oder andere machen...
wenn man sich in der Struktur von HEX-Dateien auskennt.
Gruss Reinhard
Nachtrag:
Falls es um 16 Bit Code geht mit Segment Address Start record, müsste
man evt. die Adressen und damit dauch die Prüfsummen der Records ab der
2. Datei umrechnen. Das würde ich dann doch einer Software überlassen
(oder schnell eine schreiben).
Reinhard Kern schrieb:> wenn man sich in der Struktur von HEX-Dateien auskennt.
Na ja das ist ja kein Hexenwerk.
Zumal die Ausgabe aus einem Eprommer schlicht sein sollte
Udo Schmitt schrieb:> Na ja das ist ja kein Hexenwerk.
Die Adressen ändern nicht, aber wie Udo schon anmerkte: wie machst du
mit notepad die Prüfsummen? Man kann zwar einen Hexadezimalen
Taschenrechner verwenden oder den für Windows, aber bei grossen Eproms
artet das in echte Arbeit aus. Die Software zum Galep z.B. macht das
ohne Murren.
Gruss Reinhard
Hallo!
es geht auch mit "HEX2BIN.EXE" in Kombination mit "BIN2HEX.EXE" und
Aneinanderhängen mit einfachem Editor. Ist aber umständlicher als HxD
und man muss wissen, was man macht.
Per (avr-) objcopy aus den binutils die HEX-Dateien in ordinäre
(Binär-)Files umwandeln, diese dann nach belieben mit Hexeditoren, Copy,
cat, dd, debug, edlin verwusten, und anschliessend mit objcopy zurück in
HEX verwandeln?
Bastlwastl schrieb:> Ich möchte gerne aus mehreren Intel-HEX-Files ein eiziges machen.
Wesentlich einfacher wäre die Geschichte, wenn du dich nicht auf
Intel-Hex-Files versteifst, sondern die entsprechenden Binärdateien
daraus erzeugst und diese aneinander hängst. Das Ergebnis kannst du dann
gerne wieder zurück wandeln.