Intel-Hex-Format Editor

Gast #3770380
Lesenswert?
• ▲
▼
Hallo.

Ich bin auf der suche nach einem Intel-Hex-Format Editor mit dem man 
kompilierte Hex-File editieren kann ohne den nicht benutzten 
Datenbereich mit FF aufzufüllen.

Der Compiler erstellt eine Intel-Hex Datei nur mit dem Datenbereich der 
auch wirklich benutzt wird. Dabei kann auch von Datenbereich zu 
Datenbereich hin und her verwiesen werden.

Der Editor sollte den Datenbereich nach Adressenbereich anzeigen.
Der nicht benutzte Bereich der auch nicht in der Intel-Hex Datei 
enthalten ist sollte nicht angezeigt werden.

Nun sollte es auch möglich sein den angezeigten Datenbereich zu löschen 
bzw. ggf. zu erweitern.
Die Ausgabe sollte wieder im Intel-Hex-Format mit nur den benutzten 
Datenbereich (ohne ihn mit FF aufzufüllen).

Gibt es einen solchen Editor?


TurboPosty
Gast #3770521
Lesenswert?
• ▲
▼
TurboPosty schrieb:
> Der nicht benutzte Bereich der auch nicht in der Intel-Hex Datei
> enthalten ist sollte nicht angezeigt werden.

Das geht meines Wissens mit keinem Editor, ist auch nicht der Sinn der 
Sache - das Hexfile wird geladen (ev. mehrere), aber angezeigt wird der 
Speicherinhalt.

Georg
#3770555
Lesenswert?
• ▲
▼
Hallo TurboPosty,

mir ist nicht ganz klar, was du vor hast, aber möglicherweise hilft Dir 
die srecord-Toolkette http://srecord.sourceforge.net/ weiter.
Ist zwar keine grafische Oberfläche, es kann Dir aber Informationen 
(srec_info) über die im Intel Hex beschriebenen Speicherbereiche 
ausgeben.
Auuserdem kannst Du viele Manipulationen vornehmen (srec_cat), dazu 
gehoert auch Speicherbereiche aus dem File entfernen oder mit etwas 
füllen.
Syntax etwas gewöhnungbedürftig ...
Es kann auch viele andere Formate statt Intel Hex .

Gruß Erik
Gast #3770592
Lesenswert?
• ▲
▼
Georg schrieb:
>> Der nicht benutzte Bereich der auch nicht in der Intel-Hex Datei
>> enthalten ist sollte nicht angezeigt werden.
>
> Das geht meines Wissens mit keinem Editor, ist auch nicht der Sinn der
> Sache

Man kann so gezielt kompilierte C-Routinen kopieren und diese zum 
Grundprogramm, das sich im Mikrocontroller befindet, hinzukopieren!

Alternativ wäre auch ein Intel-Hex-Format Converter, was die Daten nach 
dem Adressbereich sortiert, denkbar.
Gast #3770715
Lesenswert?
• ▲
▼
>ohne den nicht benutzten
>Datenbereich mit FF aufzufüllen.

Schwierig.
Was willst du denn erreichen ?

Mit dem bereits genannten SRECORD kann man das höchstwahrscheinlich 
machen.
Syntax dafür ist aber schwierig bis kompliziert.
Und: SRecord ist kein "Editor" wie du evtl. meinst (z.B. WINHEX).

Evtl. einfacher: SRECORD erlaubt es auch, aus "grossen" .HEX Dateien 
alle zusammenhängenden "FF" wieder zu entfernen. Dabei gibt man vor, 
wieviele "FF" mindestens hintereinander sein müssen damit sie entfernt 
werden.


Zum Beitrag von  Erik L. (erikl) sage ich:
>es wird irgenwie nicht klarer was Du willst,
Zustimmung

>in meinen IntelHex Files
>sind die Daten nach Adressen sortiert ...
Nein! Das ist nicht (zwingend) bzw. generell so.
Es gibt auch Linker die lustig unsortierte Adressbereiche nacheinander 
in die .HEX schreiben; ggf. mit 'ner Option kann man (aufsteigend) 
sortierte erzwingen.

Gruss
Gast #3771280
Lesenswert?
• ▲
▼
Georg schrieb:

> Das geht meines Wissens mit keinem Editor, ist auch nicht der Sinn der
> Sache - das Hexfile wird geladen (ev. mehrere), aber angezeigt wird der
> Speicherinhalt.

Es müsste relativ einfach möglich sein, ein Kommandozeilentool zu 
schreiben, dass alle "leeren" Records aus einem gegebenen Hexfile 
löscht. Also die, welche nur aus 0xFF bzw 0x00 bestehen (je nachdem was 
der "gelöschte" Zustand des Speichers ist).
Gast #3771461
Lesenswert?
• ▲
▼
soul eye schrieb:
> Es müsste relativ einfach möglich sein, ein Kommandozeilentool zu
> schreiben, dass alle "leeren" Records aus einem gegebenen Hexfile
> löscht.

Das ist überflüssig, laut TO stehen die im Hexfile ja garnicht drin. Was 
er möchte: in der Anzeige sollen sie auch nicht auftauchen (ziemlicher 
Unsinn, wie soll die Anzeige denn aussehen - jedenfalls nicht so wie bei 
einem üblichen HexEditor).

Nebenbei bemerkt ist das als Lösung sowieso wenig sinnvoll, so ein Tool 
kann nicht unterscheiden, ob es sich um ungenutzten Speicher handelt 
oder um mit 00 oder FF initialisierte Variablen.

Georg
#4117695
Lesenswert?
• ▲
▼
warum ist es Unsinn wenn etwas sinnlosen nicht auftauchen soll?

Ich kann den TO gut verstehen, wozu Leerzeilen in eine Datei schreiben ?

Wenn bei einem X KB großen Flash nur ein paar zig bytes benutzt werden 
lang es doch völlig auch nur diese im file zu speichern.

Schließlich bietet das Format doch (genau dafür) die Adressierung an.

Allerdings habe ich noch keinen Editor gesucht/gefunden der das kann.
Gast #4118017
Lesenswert?
• ▲
▼
...weil ein Ihex File auch mit 0 initialisierte Felder im RAM enthalten 
kann, Dein Tool müßte dann wissen das es solche sind auch wo sie sind um 
die Initialisierung bei zu behalten.

Gruß,

Holm
Gast #4749113
Lesenswert?
• ▲
▼
Ich habe einige Programme getestet, um ein PIC hex nachvollziehen zu 
können:

https://mh-nexus.de/de/hxd/
  Kann leider nur Export, die nächste Version soll es können .. aber 
wann sie kommt?

https://sourceforge.net/projects/hexplorer/
  Keine Expansion, d.h. höhere Adressen werden einfach ans Ende gehängt
  Fürchterliche Schriftart
  Keine Spaltenüberschriften

https://github.com/strobejb/HexEdit
  Keine Expansion, d.h. höhere Adressen werden einfach ans Ende gehängt
  Keine Spaltenüberschriften

https://www.x-ways.net/winhex/index-d.html
  Macht es richtig
  Hex laden und dann edit > convert Intel Hex


Wie schon geschrieben geht es natürlich auch mit hex2bin plus Hex-Editor

Python: https://github.com/bialix/intelhex

win32, v 1.02: http://gnuwin32.sourceforge.net/packages/hex2bin.htm
win64, v 2.3 : https://sourceforge.net/projects/hex2bin/files/hex2bin/

bin2hex finde ich nicht.

Viel Erfolg.
Gast #4750084
Lesenswert?
• ▲
▼
Peter D. schrieb:
> TurboPosty schrieb:
>> Man kann so gezielt kompilierte C-Routinen kopieren und diese zum
>> Grundprogramm, das sich im Mikrocontroller befindet, hinzukopieren!
>
> Warum sollte man den Flash mit totem Code füllen?
> Ohne Linker lassen sich Code und Daten nicht plazieren und aufrufen.

Vielleich weil man das früher ...
>>>Datum: 19.08.2014 21:02
so gemacht hat.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren