Forum: Mikrocontroller und Digitale Elektronik Aus mehreren HEX-files eines machen


von Bastlwastl (Gast)


Lesenswert?

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?

von Obasi (Gast)


Lesenswert?

srec_cat sollte das sein was du suchst.

von Udo S. (urschmitt)


Lesenswert?

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

von never ever (Gast)


Lesenswert?

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 entschlsselt erstellt werden.
  Ziel         Bezeichnet das Verzeichnis und/oder Dateinamen der neuen
               Datei(en).
  /V           šberprft, ob die Dateien richtig geschrieben wurden.
  /N           Verwendet den Kurznamen (falls vorhanden), beim Kopieren
               einer Datei mit einem Nicht-8Punkt3-Namen.
  /Y           Unterdrckt 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 Verknpfung ist, wird 
die
               Verknpfung anstelle der eigentlichen Datei, auf die die
               Verknpfung 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 ausgefhrt 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

von Karl H. (kbuchegg)


Lesenswert?

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.

von Route_66 H. (route_66)


Lesenswert?

Hallo!
Ich nutze öfter HxD.
http://mh-nexus.de/de/hxd/

von Here Is Johnny (Gast)


Lesenswert?

mit notepad++ kannst du auch das eine oder andere machen...

von Reinhard Kern (Gast)


Lesenswert?

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

von Udo S. (urschmitt)


Lesenswert?

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.

von Vlad T. (vlad_tepesch)


Lesenswert?

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.

von Reinhard Kern (Gast)


Lesenswert?

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

von Udo S. (urschmitt)


Lesenswert?

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).

von Udo S. (urschmitt)


Lesenswert?

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

von Reinhard Kern (Gast)


Lesenswert?

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

von Route_66 H. (route_66)


Lesenswert?

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.

von Εrnst B. (ernst)


Lesenswert?

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?

von Lebenshilfe (Gast)


Lesenswert?

Wenn sich schon einer Bastlwastl nennt, dann sollte er das besser 
lassen. Hinterher nervst du uns damit, dass es nicht funktioniert.

von Bastelstubendienst (Gast)


Lesenswert?

>und man muss wissen, was man macht

Quatsch, mit einem Kochrezept klappt das mit dem Basteln schon.

von Wastlbastl (Gast)


Lesenswert?

Das hexfile ist jetzt zu gross! Kann man das auch verkleinern?

von Schneiderlein (Gast)


Lesenswert?

Das Stückchen, was hinten rausguckt mit Schere abschneiden.

von Dieter W. (dds5)


Lesenswert?

Wastlbastl schrieb:
> Das hexfile ist jetzt zu gross!

Zu groß wofür?

> Kann man das auch verkleinern?

Normalerweise nicht

von Werner (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.