Intel Hex Format Dateien bearbeiten

OP Persönliche Seite #5971092
Lesenswert?

Hi Leute,
ich suche ich eine Software mit der ich die HEX Files vom 
Mikrocontroller ändern kann und die Checksumme automatisch berechnet 
wird. Mir geht es darum, Kalibrationsdaten die via Linker-File auf 
bestimmten Sektoren des uC's  abgelegt werden, direkt im HEX File zu 
ändern. Dabi soll di Checksumme automatisch neu berechnet werden...

Kenn Ihr solche Tools? Alles was ich finde, sind eher die HEX Editoren 
für binäre Dateien.
#5971163
Lesenswert?

Python hat eine m.M.n. sehr mächtige Lib ("IntelHex") für das Öffnen, 
Bearbeiten und Abspeichern von Intel-Hex.

Ein Skript was dir ein paar Bytes ändert, anschließend eine Checksumme 
über einen bestimmten Speicherbereich errechnet und diese dann noch 
ablegt sollte in wenigen Zeilen machbar sein.
Wir benutzen das hier für einen genau solchen Postbuild-Hook.


Ob es sowas von der Stange für genau deinen Fall gibt würd ich 
bezweifeln.
OP Persönliche Seite #5971180
Lesenswert?

Le X. schrieb:
> Python hat eine m.M.n. sehr mächtige Lib ("IntelHex") für das Öffnen,
> Bearbeiten und Abspeichern von Intel-Hex.
>
> Ein Skript was dir ein paar Bytes ändert, anschließend eine Checksumme
> über einen bestimmten Speicherbereich errechnet und diese dann noch
> ablegt sollte in wenigen Zeilen machbar sein.
> Wir benutzen das hier für einen genau solchen Postbuild-Hook.
>
>
> Ob es sowas von der Stange für genau deinen Fall gibt würd ich
> bezweifeln.

Python kann ich nicht, ein Script was sowas machen könnte, würde ich in 
C# hinbekommen, mir geht es aber darum, ob solche Tools existieren?
Es soll auch für Kollegen machbar sein, eine HEX Datei bearbeiten zu 
können, mit der der uC beschrieben wird.
OP Persönliche Seite #5971255
Lesenswert?

Ich mach das jetzt in C#, habe jetzt auf die Schnelle schon was 
zusammengebastelt. Muss die Anzeige nur bisschen ordentlicher 
gestallten.
Vielleicht baue ich noch gleich die command line programmierung des 
STM32 mit ein. Mein highlighter trödelt leider ein wenig. Ein 80kB STM32 
File, wird 4 Sekunden lang eingelesen...
Angehängte Dateien:
Persönliche Seite #5971371
Lesenswert?

Ich stand vor 2-3 Jahren auch vor einer ähnlichen Problematik(Signatur 
über den Applikationbereich hinzufügen, CRC Prüfsummen für einen 
Flashheader berechnen) und wollte das Rad nicht neu erfinden.
Dabei fand ich folgendes Tool welches extrem mächtig ist. 
srecord.sourceforge.net

Kann neben Konvertieren in diverse Formate auch Heraustrennen/ Auffüllen 
und div. Prüfsummen rechnen.

Habe für meine Zwecke mit diversen Zwischendateien gearbeitet und 
hinterher alles wieder zu einer Datei zusammen gebaut.

Also auf jeden Fall einen Blick wert.
#5971704
Lesenswert?

A. F. schrieb:
> Python kann ich nicht, ein Script was sowas machen könnte, würde ich in
> C# hinbekommen, mir geht es aber darum, ob solche Tools existieren?
> Es soll auch für Kollegen machbar sein, eine HEX Datei bearbeiten zu
> können, mit der der uC beschrieben wird.

Das kapier ich nicht,

Du schreibst daß Du das problemlos programmieren kannst, dann mach es 
doch. Die Kollegen benutzen dann Dein Programm um die Kalibrierwerte 
einzugeben und dann klicken sie auf den "Flash"-Button und dann geht 
alles automatisch. Wenn Du programmieren kannst dann kannst Du das so 
idiotensicher machen daß es ein trainierter Schimpanse bedienen kann. Wo 
ist das Problem?
Gast #5972316
Lesenswert?

Was fuer ein Quatsch ist das nun ? Heutzutage kann der Prozessor selbst 
unter Programmkontrolle ins Flasch oder ins EEPROM schreiben. Also ich 
mach das zB so, um Konfigurationswerte zu speichern...
Gast #5972440
Lesenswert?

Srecord funktioniert allenfalls unter Linux. Die Autoren sind in recht 
pubertärem Humor auch noch stolz drauf, daß sie es geschafft haben, ein 
solch vergleichsweise simples Tool nicht-portabel hinzukriegen. Unter 
Cygwin läßt es sich auch nicht bauen.

Ich hab mir dann lieber für meinen use case ein Hextool selber 
geschrieben, was schneller ging, als mich mit Srecord herumzuplagen.
#5972445
Lesenswert?

Nop schrieb:
> Srecord funktioniert allenfalls unter Linux. Die Autoren sind in recht
> pubertärem Humor auch noch stolz drauf, daß sie es geschafft haben, ein
> solch vergleichsweise simples Tool nicht-portabel hinzukriegen. Unter
> Cygwin läßt es sich auch nicht bauen.

Was laberst Du für einen Unsinn?

   "SRecord runs on almost any flavor of UNIX. The source distribution 
is self configuring using a GNU Autoconf generated configure script.

    SRecord also runs on Windows. You can build SRecord for Windows 
using Cygwin or DJGPP, see the Windows page."
#5972458
Lesenswert?

Nop schrieb:
> Bernd K. schrieb:
>
>> Was laberst Du für einen Unsinn?
>
> Bla.
>
>>     SRecord also runs on Windows. You can build SRecord for Windows
>> using Cygwin or DJGPP, see the Windows page."
>
> Bla. Einer von uns beiden hat das real versucht, der andere zitiert bloß
> die Doku.

Nein, Du hast einen Schwachsinn von "pubertärem Humor" und "absichtlich" 
dahergelogen. Dafür gibt es keinen Anhaltspunkt, ganz im Gegenteil.
Gast #5972483
Lesenswert?

Bernd K. schrieb:

> Wo steht da daß er irgendwas absichtlich unportabel gemacht hat?

Lies die Hauptseite. Upgraden auf Linux.

Abgesehen davon sollte ein CLI-Tool, was einfach nur Dateien einliest, 
transformiert und wieder wegschreibt, überhaupt keine OS-Abhängigkeit 
haben. Das kann man auch in portablem C/C++ schreiben und mit jedem 
standardkonformen Compiler übersetzen. Alles andere ist an sich schon 
ein Antipattern.
#5972486
Lesenswert?

Nop schrieb:
> Bernd K. schrieb:
>
>> Wo steht da daß er irgendwas absichtlich unportabel gemacht hat?
>
> Lies die Hauptseite. Upgraden auf Linux.

Die hab ich oben zitiert. Dort stehen Anweisungen für Windows, also hat 
er das vorgesehen, das genaue Gegenteil von dem was Du 
unverschämterweise unterstellst.

Er hat sich sogar sehr ausführliche Mühe gegeben eine extra Seite für 
Windows zu machen und in ellenlanger Ausführlichkeit die Schritte 
aufzulisten, weitaus mehr als man überhaupt hätte verlangen können!
Gast #5972490
Lesenswert?

Bernd K. schrieb:

> also hat er das vorgesehen, das genaue Gegenteil von dem was Du
> unverschämterweise unterstellst.

Ich wiederhole: Du hast überhaupt keine Ahnung, weil Du bloß die Doku 
zitierst. Ich habe das real unter Cygwin versucht, bevor ich mir 
stattdessen mein eigenes Tool geschrieben habe, weil nichts von der 
Srecord-Doku so funktioniert wie behauptet.

Zusammen mit den auch im Rest der Doku anzutreffenden Seitenhieben auf 
Windows ergibt sich da ein sehr eindeutiges Bild. Die suche ich Dir 
jetzt aber nicht im Einzelnen raus, das darfst Du selber tun.

Übrigens funktioniert mein Tool, was den für mich wichtigen Teil der 
Srecord-Funktionalität abbildet, selbstverständlich unter Windows und 
Linux gleichermaßen, ohne daß irgendwelche Anpassungen nötig wären.

Für das Gegenteil muß man sich schon entweder anstrengen oder komplett 
unfähig sein, und Letzteres wollte ich den Srecord-Entwicklern nun nicht 
unterstellen.
#5972493
Lesenswert?

Nop schrieb:
> Bernd K. schrieb:
>
>> also hat er das vorgesehen, das genaue Gegenteil von dem was Du
>> unverschämterweise unterstellst.
>
> Ich wiederhole: Du hast überhaupt keine Ahnung,

Jetzt wiederhole ich!

Um nämlich nochmal auf Deine dreiste unverschämte Lüge zurückzukommen:

> Die Autoren sind in recht
> pubertärem Humor auch noch stolz drauf, daß sie es geschafft haben, ein
> solch vergleichsweise simples Tool nicht-portabel hinzukriegen"

Wo genau steht das? Antworte gefälligst oder schweige!
Gast #5972618
Lesenswert?

Bernd K. schrieb:

> Du ziehst das Forum herunter indem Du aus heiterem Himmel Autoren von
> freien Softwareprojekten beleidigst und ihnen Sachen unterstellst die
> nicht der Wahrheit entsprechen.

Es fällt allerdings schon sehr schwer, zu erklären, warum man zum Bau so 
eines doch eher trivialen Streameditors überhaupt zwingend gcc und 
cygwin braucht.

Das kann nach Lage der Dinge nur Unfähigkeit oder Absicht sein. Der 
eigentliche Code sieht aber eben nicht nach völliger Unfähigkeit aus, 
sondern scheint soweit ganz brauchbar zu sein (habe nur flüchtig 
reingeschaut).

Was bleibt denn da deiner Meinung nach noch als Erklärung über?
#5972627
Lesenswert?

c-hater schrieb:
> Was bleibt denn da deiner Meinung nach noch als Erklärung über?

Daß er es mit gcc und autotools entwickelt hat vielleicht? Immerhin ist 
das der de-facto Standard und auf ALLEN relevanten Plattformen 
verfügbar (sogar auf Windows) was man von so manchen anderen Toolchains 
nicht sagen kann, er hat also den gemeinsamen Nenner gewählt und keine 
künstliche Einschränkung vorgenommen. Weise Entscheidung.
Gast #5972792
Lesenswert?

c-hater schrieb:

> Es fällt allerdings schon sehr schwer, zu erklären, warum man zum Bau so
> eines doch eher trivialen Streameditors überhaupt zwingend gcc und
> cygwin braucht.

Wegen "scratch my itch" und "works for me". Dann noch eine Crypto-Lib 
als externe Abhängigkeit reingesetzt, weil mehr Abhängigkeiten 
schließlich mehr Spaß bedeuten. Und bitte keine Leerzeichen in 
Pfadnamen, immer ein Indiz für solide Software.

Aber was erwartet man schon von Leuten, die WISSEN, daß etliche 
Eeprommer nur mit 16 Datenbytes pro Datenzeile im Hexformat klarkommen - 
und das nicht etwa zum Anlaß nehmen, 16 Bytes als Default zu wählen. Nee 
wieso, da nimmt man "natürlich" 32 Bytes und lästert dann lieber in der 
Doku über blöde Eeprommer ab.
OP Persönliche Seite #5973835
Lesenswert?

Bernd K. schrieb:
> Du schreibst daß Du das problemlos programmieren kannst, dann mach es
> doch. Die Kollegen benutzen dann Dein Programm um die Kalibrierwerte
> einzugeben und dann klicken sie auf den "Flash"-Button und dann geht
> alles automatisch. Wenn Du programmieren kannst dann kannst Du das so
> idiotensicher machen daß es ein trainierter Schimpanse bedienen kann. Wo
> ist das Problem?

Mache ich auch :) siehe hier:
Beitrag "Re: Intel Hex Format Dateien bearbeiten"
#5973858
Lesenswert?

Nop schrieb:
> Srecord funktioniert allenfalls unter Linux. Die Autoren sind in recht
> pubertärem Humor auch noch stolz drauf, daß sie es geschafft haben, ein
> solch vergleichsweise simples Tool nicht-portabel hinzukriegen.

Sag dass bitte nicht meinem srec_cat das wir sehr erfolgreich und nativ 
unter Win7 verwenden. Nicht dass es auf einmal seinen Dienst quitiert.


Nop schrieb:
> bevor ich mir
> stattdessen mein eigenes Tool geschrieben habe, weil nichts von der
> Srecord-Doku so funktioniert wie behauptet.

Erst letzte Woche mussten wir für ein (dem lieben Kunden geschuldetem) 
eher exotisches Bootloader-Scenario mehrere hexfiles wild mergen, 
Sektionen verschieben, ausschneiden und nochmal mergen und wieder 
verschieben.
Ich hab Srecord/srec_cat lange nicht mehr benutzt, aber mit der 
umfassenden Doku war ich recht schnell in der Lage das Ganze so zu 
skripten dass es stabil und sauber läuft. Unter Windows, wohlgemerkt.


Allerdings: mit Python und der IntelHex-Lib wäre ich noch schneller am 
Ziel gewesen.
Aber wir wollten uns nicht noch mehr Abhängigkeiten in den Buildprozess 
ziehen.
#5973909
Lesenswert?

A. F. schrieb:
> Bernd K. schrieb:
>> Du schreibst daß Du das problemlos programmieren kannst, dann mach es
>> doch. Die Kollegen benutzen dann Dein Programm um die Kalibrierwerte
>> einzugeben und dann klicken sie auf den "Flash"-Button und dann geht
>> alles automatisch. Wenn Du programmieren kannst dann kannst Du das so
>> idiotensicher machen daß es ein trainierter Schimpanse bedienen kann. Wo
>> ist das Problem?
>
> Mache ich auch :) siehe hier:
> Beitrag "Re: Intel Hex Format Dateien bearbeiten"

Naja, das ist eigentlich nicht das was ich meinte. Das sieht aus wie ein 
universell verwendbarer Editor für Intel-hex.

Was ich jedoch meinte war etwas zu programmieren das die Forderung nach 
Benutztbarkeit durch unkundige Personen erfüllt. Diese wissen doch genau 
NICHT welche Speicherstellen sie in welcher Art ändern müssen, wie die 
Datei überhaupt heißt und wo sie das hinspeichern müssen. Im Idealfall 
bekommen die einen Button vorgesetzt auf den sie klicken müssen und NULL 
Freiheitsgrade um irgendetwas falsch zu machen. DAS versuchte ich 
vorzuschlagen!

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