HEX Editor AVR Controller

Gast #5980016
Lesenswert?

Hallo,
ich bin auf der suche nach einem Hex Editor, mit dem es möglich ist aus 
zwei hex Files ein hex file zusammen zu bauen.
Anwendung:
Firmware AVR Controller Atmega 168, 328 verschiedene Ausführungen bei 
denen der Bootloader angehängt werden soll, so das aus den zwei hex 
Files eines entsteht.
Ein Hex Editor der in zwei  Instanzen verwendet werden kann, oder ein 
Editor der zwei Editor Bereiche hat, wäre die Lösung dafür.

Zur Zeit mache ich das mit der Software des TL866, hier kann man die 
Software zwei mal starten und von einer Instanz zur anderen kopieren. 
Copy von Adresse bis Adresse, bzw. Bereich und Einfügen ab Adresse.

Welche hex Editoren gibt  es dafür.
Der Editor sollte mit Windows 10 funktionieren.
#5980030
Lesenswert?

Du kannst doch auch die .hex files nacheinander flashen.

Ich hab auch etliche Zeit drüber nachgedacht wie ich mir da was basteln 
kann damit das eine Datei ist, bis ich irgendwann ganz pragmatisch 
beschlossen habe in Zukunft einfach nur immer beide hex in einen Ordner 
zu werfen und dann noch ein passendes Batchfile dazu das beides flasht 
und auch gleich die Fuses setzt. Derjenige der das dann nutzt muss nur 
den Ordner öffnen und das Batchfile starten, fertig. Null Aufwand, 
maximales Ergebnis.
Gast #5980054
Lesenswert?

Milka_Bitter schrieb:
> Zur Zeit mache ich das mit der Software des TL866, hier kann man die
> Software zwei mal starten und von einer Instanz zur anderen kopieren.
> Copy von Adresse bis Adresse, bzw. Bereich und Einfügen ab Adresse.

Geht doch!
Ich kenne deine Soft nicht, aber bei allen Programmern, die ich kenne, 
konnte man nacheinander HEX auf bestimmte Adressen laden.

Irgendwann gab es einen Hexeditor, wo man zwei Files laden konnte und 
dann vergleichen.

Ich sehe aber keinen Sinn für deine Wünsche.
Gast #5980233
Lesenswert?

michael_ schrieb:
> Ich kenne deine Soft nicht, aber bei allen Programmern, die ich kenne,
> konnte man nacheinander HEX auf bestimmte Adressen laden.
>
> Irgendwann gab es einen Hexeditor, wo man zwei Files laden konnte und
> dann vergleichen.

Die Software brauchst auch nicht kennen, es geht nur um die Hex Files.
Das mit der Programmer Software des TL866 funktioniert auch so weit, ist 
aber nicht ganz nicht ganz so komfortabel wie es sein könnte. Fernost 
Software eben.
Ich dachte an die Möglichkeit, an ein geöffnetes Hex File, ein zweites 
Hex File ab Adresse xxxx anzuhängen.
Aber wenn es so was nicht gibt mache ich es eben mit copy paste wie 
gehabt.
Gast #5980273
Lesenswert?

Georg G. schrieb:
> dann mit Notepad die eine EOF-Marke (:00000001FF) löschen.
> Fertig.

Am Ende kommt doch immer noch eine Prüfsumme, wird die nicht gebraucht?

> Ich dachte an die Möglichkeit, an ein geöffnetes Hex File,
> ein zweites Hex File ab Adresse xxxx anzuhängen.

Hex Files enthalten Adressen. Wie ist das beim Bootloader, muss man da 
dann noch einen Offset addieren, oder steht der schon korrekt im Hex 
File drin?
Gast #5980275
Lesenswert?

Milka_Bitter schrieb:
> Das mit der Programmer Software des TL866 funktioniert auch so weit, ist
> aber nicht ganz nicht ganz so komfortabel wie es sein könnte. Fernost
> Software eben.

Hat das Programm einen Namen?
Oder einen Link?

Ich habe hier Khazama und eXtreme-burner AVR, da geht das auch nicht.

Aber bei meinem TopWin 3.0 geht das.
Das Programm läuft auch ohne Programmer.
Gast #5980357
Lesenswert?

michael_ schrieb:
> Hat das Programm einen Namen?

Der TL866 ist der weit verbreitete Universal Programmer.
So eine Art GALEP.
 Eine Suche nach TL866 Programmer bringt dir sicher viele Ergebnisse, 
auch den Link zum Hersteller aus China.
Der Programmer ist auch für die AVR Controller gut geeignet wenn man die 
Ausführung mit dem ISP Port hat.

Die Software kann auch ohne Programmer Hardware verwendet werden, um 
z.B. die HEX Files zu bearbeiten.
Gast #5980365
Lesenswert?

Stefanus F. schrieb:
> Georg G. schrieb:
>> dann mit Notepad die eine EOF-Marke (:00000001FF) löschen.
>> Fertig.
>
> Am Ende kommt doch immer noch eine Prüfsumme, wird die nicht gebraucht?

Doch, jeweils für die Zeile.

Und welche Adressen dort für die Zeilen angegeben sind ist doch vom 
Erzeuger abhängig.

Ob ein Bootloader die nun auswertet oder auch noch umrechnet ist Sache 
des Bootloaderprogrammierer.
Wenn die Adressen sauber im hex-file drin stehen, der PC das 
entsprechend weiter reicht braucht der Bootloader das doch nur 
entsprechend umsetzen.

Der Riesenvorteil vom Intelhex ist doch das alle zulässigen Zeichen mit 
jedem Editor dargestellt werden können.
Somit ist der Lieblingseditor gut geeignet.
(Firma: Vescomp) #5980449
Lesenswert?

Georg G. schrieb:
> Für HEX-Files braucht man keinen speziellen Editor. Notepad ist völlig
> ausreichend. Beide Files zusammenkopieren (copy file1.hex,file2.hex
> file.hex) und dann mit Notepad die eine EOF-Marke (:00000001FF) löschen.
> Fertig.

 LOL. Genau so.
 Es kann sowieso nicht vorkommen, dass sich die Adressen überlappen.

Stefanus F. schrieb:
> Am Ende kommt doch immer noch eine Prüfsumme, wird die nicht gebraucht?

 Nein, es kommt keine Prüfsumme am Ende, jede Zeile hat eine eigene
 Prüfsumme.
Gast #5980454
Lesenswert?

Marc V. schrieb:
> Nein, es kommt keine Prüfsumme am Ende, jede Zeile hat eine eigene
>  Prüfsumme.

Ah Ok, dann hatte ich das missverstanden. Da es nun so ist, würde ich 
die Dateien einfach zusammen kopieren. Diese eine Zeile wegschneiden ist 
mit Linux Boardmitteln (unter Windows mit CygWin) kein Kinderspiel.
#5980493
Lesenswert?

Die Bezeichnung HEX-editor ist nicht eindeutig. Hier sollen anscheinend 
Daten im Intel-Hex-Format zusammengebunden werden. Mit einem 
"Hex-Editor" z.B. HxD (Windows) oder ghex (Linux) werden normalerweise 
Dateien als hexadezimale Zahlen dargestellt und editiert.

Jedec-Files für CPLDs haben am Ende eine Gesamt-Prüfsumme, die darf man 
nicht einfach aneinanderhängen. Für Intel-Hex gilt das anscheinend 
nicht.
https://de.wikipedia.org/wiki/Intel_HEX
Die Zeilen heißen hier "Datensatz" und eine Prüfsumme gilt immer nur für 
eine Zeile.

Auch das Intel-Hex-Format schreibt in jede Zeile, wo im Speicher diese 
Zeile liegen soll (absolute Adressen), wie Stefanus schon schrieb. Vor 
dem einfachen Aneinanderhängen muss klar sein, dass keine Adressbereiche 
doppelt belegt werden.
#5980494
Lesenswert?

Geht das ganze überhaupt?

Ein Hex-File ist zwar eine Textdatei, enthält aber keine Strukturen wie: 
1. Kapitel und 2. Kapitel.

Normalerweise enthalten Hex-Dateien Programmadressen in jeder Zeile. 
Prinzipiell können diese in beiden Dateien Duplikate enthalten. Keine 
Ahnung was ein Programmer in diesem Falle macht.
Gast #5980497
Lesenswert?

Marc V. schrieb:

>  LOL. Genau so.
>  Es kann sowieso nicht vorkommen, dass sich die Adressen überlappen.

Das kann schon vorkommen, z.B. wenn man das .OVERLAP-Feature des 
Atmel-Assemblers nutzt.

Das Verhalten in diesem Fall ist aber eindeutig geregelt: wer zuletzt 
kommt, gewinnt.

So löst sich auch das Problem ganz einfach, wenn App und Bootloader Code 
sharen, was durchaus sinnvoll sein kann, um Flash zu sparen (für 
Bootlader, die nichttriviale Datenquellen benutzen).

Der shared Code überlappt dann zwar, ist aber im Überlappungsbereich 
identisch, so dass es nichtmal eine Rolle spielt, in welcher Reihenfolge 
die beiden Dateien zusammengebaut werden.
Gast #5980538
Lesenswert?

Sebastian S. schrieb:

> Geht das ganze überhaupt?

Ja.

> Ein Hex-File ist zwar eine Textdatei, enthält aber keine Strukturen wie:
> 1. Kapitel und 2. Kapitel.

Doch.

> Normalerweise enthalten Hex-Dateien Programmadressen in jeder Zeile.

Diese Adressen sind nur der Offset im jeweiligen "Segment". Genau diese 
Segmente sind die übergeordnete Verwaltungsinstanz. Es gibt sie in zwei 
Spielarten, als echte Segmente im Sinne des Intel-x86-segmented 
Speichermodells, aber auch als lineare Adressen.

Sogar schon beim AVR8 bekommt man es mit diesen Offsets zu tun. Nämlich 
bei allen AVR8 mit Flash>64k. Der Bootloader liegt dort nämlich im 
zweiten Segment...

> Prinzipiell können diese in beiden Dateien Duplikate enthalten. Keine
> Ahnung was ein Programmer in diesem Falle macht.

Wenn er dem Standard folgt, nimmt er das zuletzt im File erscheinende 
Datum.
Gast #5980574
Lesenswert?

Christoph db1uq K. schrieb:
> Auch das Intel-Hex-Format schreibt in jede Zeile, wo im Speicher diese
> Zeile liegen soll (absolute Adressen), wie Stefanus schon schrieb. Vor
> dem einfachen Aneinanderhängen muss klar sein, dass keine Adressbereiche
> doppelt belegt werden.

Das ist so nicht korrekt.

Es gibt Zeilen die beinhalten nur Daten, max 16 Bytes, da ist kein Platz 
für eine Adresse.
(Firma: Vescomp) #5980576
Lesenswert?

c-hater schrieb:
> Marc V. schrieb:
>
>>  LOL. Genau so.
>>  Es kann sowieso nicht vorkommen, dass sich die Adressen überlappen.
>
> Das kann schon vorkommen, z.B. wenn man das .OVERLAP-Feature des
> Atmel-Assemblers nutzt.

 Das setzt aber voraus, dass beide (App und BL) zur gleichen Zeit
 und in einem File compiliert werden und das ist fast niemals der Fall.

>
> Der shared Code überlappt dann zwar, ist aber im Überlappungsbereich
> identisch, so dass es nichtmal eine Rolle spielt, in welcher Reihenfolge
> die beiden Dateien zusammengebaut werden.

 In zwei verschiedenen Assembler Dateien .overlap auf selbe Adresse zu
 setzen ist einfach sinnlos.
 .OVERLAP dient nur dazu, Compilerwarnungen bzw. Errors zu vermeiden,
 der Compiler wird aber niemals (und kann nicht) einen solchen Fehler
 bei 2 getrennten Dateien melden.

 P.S.
 Die Option Bootloader zusammen mit App zu laden, habe ich in meinem
 Prommer schon ewig, noch nie Probleme damit gehabt.
 Macht genau das, was weiter oben beschrieben wurde, nämlich die
 EOF Markierung aus dem ersten File zu entfernen und die beiden Dateien
 dann einfach zusammenzufügen und zu flashen.
Angehängte Dateien:
Gast #5980808
Lesenswert?

Christoph db1uq K. schrieb:
> Die Bezeichnung HEX-editor ist nicht eindeutig. Hier sollen anscheinend
> Daten im Intel-Hex-Format zusammengebunden werden.

Deshalb habe ich am Anfang beschrieben was ich damit machen möchte.
So mit sollte die Frage schon eindeutig sein.

Leider wurde das Thema etwas zerrissen mit der Meinung, es kann jeder 
Editor dafür verwendet werden, was natürlich Unsinn ist.

Ich bleib einfach bei dem Editor des TL866.
Gast #5980999
Lesenswert?

Georg G. schrieb:
> NichtWichtig schrieb:
>> Es gibt Zeilen die beinhalten nur Daten, max 16 Bytes, da ist kein Platz
>> für eine Adresse.
>
> Falsch. Sieh dir bitte die Definition des Intel-HEX Formates an. Jeder
> Datenrecord (Typ 0) enthält die Ladeadresse.

Ups, vollkommen korrekt. Sorry!
Ich habe zu lange nix mehr damit gemacht und stolper aktuell exakt über 
das Problem.
Der Offset im Segent ist vorhanden.


Meine DIY Software verkackt beim 128KB IntelHex file für den BluePill.
Da muß ich nochmal in alten VisualStudio-Zeugs nachbessern.

Waren beim ollen AVRTiny44 oder 89S8252 das noch unsichtbare bugs fällt 
es nun beim BluePill mit 128KB auf sobald man die ersten 64K 
überschreitet.

Jetzt brauche ich ein 128kB file was ab 0x08000000 gespeichert wird.
Gast #5981108
Lesenswert?

Georg G. schrieb:
> NichtWichtig schrieb:
>> Es gibt Zeilen die beinhalten nur Daten, max 16 Bytes, da ist kein Platz
>> für eine Adresse.
>
> Falsch. Sieh dir bitte die Definition des Intel-HEX Formates an. Jeder
> Datenrecord (Typ 0) enthält die Ladeadresse.

Bei so einer Prozedur wie vom TO sollte man sich ganz schnell vom 
Intel-hex verabschieden.
Natürlich sind dort Adress-Informationen enthalten.

Also nach xxx.hex/bin konvertieren.

Milka_Bitter schrieb:
> michael_ schrieb:
>> Hat das Programm einen Namen?
>
> Der TL866 ist der weit verbreitete Universal Programmer.
> So eine Art GALEP.
>  Eine Suche nach TL866 Programmer bringt dir sicher viele Ergebnisse,
> auch den Link zum Hersteller aus China.
> Der Programmer ist auch für die AVR Controller gut geeignet wenn man die
> Ausführung mit dem ISP Port hat.

Bist du nicht in der Lage zu liefern?
Ich soll für dich mich durchs Internet zu wühlen?
Bist du nicht in der Lage zu zitieren, was in der oberen Zeile deiner 
Soft steht?
Gast #5981134
Lesenswert?

Hat mich zwar angestunken, aber ich habe mir mal die Arbeit gemacht.
Nach mehreren/vielen Angeboten zum TL866 habe ich diese Soft gefunden 
und zum Test installiert.

Xgpro v8.51

www.autoelectric.xx/EN/TL866_MAIN.html

Die Forensoft meckert.
Der Beitrag scheint Spam zu enthalten: "xx"
Wer Mut hat, ersetzt das xx durch cn.

Und dort kann man beim Einlesen zwischen Intel.hex und ...hex auswählen.
Und den Speicherbereich auch auswählen.

Was will man mehr!

Oder hast du eine andere Soft?

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