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
Wird so nicht funktionieren! Die reinen notwendigen Daten werden mit vielen FF aufgefüllt!
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
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
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.
TurboPosty schrieb: > Alternativ wäre auch ein Intel-Hex-Format Converter, was die Daten nach > dem Adressbereich sortiert, denkbar. es wird irgenwie nicht klarer was Du willst, in meinen IntelHex Files sind die Daten nach Adressen sortiert ...
Aufgrund der Hexfile spezifikationen kann man sich jederzeit einen solchen Editor zusammenkloppen
>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
TurboPosty schrieb: > Man kann so gezielt kompilierte C-Routinen kopieren und diese zum > Grundprogramm, das sich im Mikrocontroller befindet, hinzukopieren! Da kann man zwar irgendwas "hinzukopieren", aber solange Dein Controller und/oder Compiler keinen vollständig relokatiblen Code kennt bzw. erzeugen kann, ist das ziemlich sinnlos.
Die ungeloeschte form eines Flash bytes ist eben 0xFF. Wenn man's auf 0x00 geschrieben hat kann man nur noch die ganze Seite loeschen. Deswegen ist uninitialisierter Code 0xFF
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).
@soul eye (souleye) Gibt's doch schon, siehe mein obiger Beitrag Beitrag "Re: Intel-Hex-Format Editor"
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
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.
...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
> Gibt es einen solchen Editor?
Nicht das ich das schonmal gebraucht haette, aber ich wuerde wetten das
Emacs das kann.
Olaf
Sonst ist so ein editor eher schnell selbst geschrieben. Ein paar stunden... Man muss such erst mal die definitien eines intel hex files suchen, der Rest ist einfach.
:
Bearbeitet durch User
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.
Okto Bär schrieb: > bin2hex finde ich nicht. Äh, das ist im objcopy aus Binutils schon mit drin. Binutils haben IIRC alle außer Windoof per default dabei, dort wäre das u.a. im Cygwin oder Mingw.
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.
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.
Okto Bär schrieb: > https://github.com/strobejb/HexEdit > Keine Expansion, d.h. höhere Adressen werden einfach ans Ende gehängt Geht doch, aber man muss beim Import "Use Address Information when pasting Data" wählen.
TurboPosty schrieb: > 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. Ist zwar kein reines Editor, man kann dafür die Programmersoftware von Asix nutzen. Läuft auch ohne Programmer. http://asix.net/dwnld_up.htm
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.