Forum: Projekte & Code Eeprom Datei Editor (Intel-Hex-Format)


von Michael S. (schiko)


Angehängte Dateien:

Lesenswert?

Moin zusammen,

Ich möchte kurz meinen EEPROM-Editor vorstellen, den vielleicht auch
der ein oder andere nützlich finden kann.

Es gab zwei Gründe, warum ich nun auch einen Editor für
EEPROM-Dateien geschrieben habe:

1. Wenn ich beim Brennen schon Parameter im EEPROM ablegen wollte,
musste ich recht mühsam ALLE Parameter in Hex angeben und durch 'nen
Binär-To-IntelHex-Konverter jagen..

2. Beim Missbrauchen des EEPROM als Datenlogger kann das
Auseinanderklamüstern ebenso nervig sein, wenn die Datenpakete
aus mehr als immer nur gleichen 8- oder 16- Bitwerten bestehen.

Was mein kleiner Editor vor allem kann:

-Erstellen von Intel-Hex-Dateien
-Laden, Ändern, Speichern von Intel-Hex-Dateien
-Formatierte Anzeigen von Intel-Hex-Dateien (8,16,32 Bit, 
signed/unsigned, little-/big endian)
-Ändern direkt im gewünschten Format als Buchstabe, dezimal oder Hex
-Laden, Ändern, Speichern von "Format-Dateien" für beliebige eigene 
Projekte
-Intel-Hex-File mit 4,8,16,32 oder 64 Byte/Zeile schreiben/lesen
-Dateinblöcke, ab einer Startadresse
-Anzeige in Seiten à 32Byte (Blättern mit Scrollbar links)
-Er macht für zumindest für meine Bedürfnisse das, was er soll :-)

Was er NICHT kann:

-Eine vernünftige Hilfe anbieten
-Formatierte Ausgabe/Ändern von float und double (vorgesehen, aber nicht 
ausprogrammiert, weil ich es bisher nicht brauchte)
-Nicht zusammenhängende Speicherbereichen händeln.
-Offset-Komandos im Hex-File
-Dateien händeln mit mehr als 0x1000 Bytes (4k EEProm)
-Direktes Überschreiben im Hexfile (oberes Editfeld)
-Mit ordentlichen Shortcuts dienen ( ..für das Wechseln zwischen den 
Edit-Feldern täte es gut..)
-Als Programmier-Tutorium dienen. (Dazu ist er zu schnell "dahingehackt"
bzw. gewachsen)

Ansonsten:

Geschrieben ist er mit VS2008 und MFC.
Er ist wie er ist, das heißt ich übernehme natürlich keine Garantie
für irgendwelche Fehler etc.
Den Quellcode kann ich zur Verfügung stellen...hier oder woanders.

Schiko

von Joachim (Gast)


Lesenswert?

Hallo,

ich habe gerade mal dein Programm ausprobiert, und es tut genau das, was 
ich wollte :) !

Vielen Dank!

von Ronnie (Gast)


Lesenswert?

>Wenn ich beim Brennen schon Parameter im EEPROM ablegen wollte,
musste ich recht mühsam ALLE Parameter in Hex angeben und durch 'nen
Binär-To-IntelHex-Konverter jagen..


So ganz nebenbei... Solche Klimmzuege waren noetig als man die EPROM 
noch als Chip im externen Programmer programmierte. Heutzutage mit dem 
In-circuit Programmer braucht man das so nicht mehr.
Meine Konstanten zu Initialisierung und Parametrisierung von Prozessen, 
werden im Programm gemacht.

{Type EEPROM }

Struct-Constant

aa:byte = 5;

usw.

Und wenn man die Parameter ueber ein Kabel uebertraegt braucht man auch 
kein Intel Hex.

von Schiko (Gast)


Lesenswert?

Ronnie schrieb:
>>Wenn ich beim Brennen schon Parameter im EEPROM ablegen wollte,
> [..] Heutzutage mit dem
> In-circuit Programmer braucht man das so nicht mehr.

Noch ein Bespiel, wie mir der Editor gerade sehr hilfreich ist:

Kunde XY hat ein Board mit diversen eigenen Einstellungen,
Kalibrierungen, Messdaten o.ä. usw, die im Eeprom abgelegt sind,
und auch erhalten bleiben sollen.
Jetzt sollen aber ein paar Eeprom-Parameter nachträglich geändert 
werden.
-Download der aktuelle Einstellung mit dem Avrstudio o.ä.
-Ändern der Eeprom-Hex-Datei mit meinem Editor
-Upload der aktuelle Einstellung mit dem Avrstudio o.ä.
fertig.


> Meine Konstanten zu Initialisierung und Parametrisierung von Prozessen,
> werden im Programm gemacht.

Das sollte man auch weiterhin tun und reicht völlig aus,
solange man einer einzigen Initialisierung je Controller/Programversion 
auskommt.

> Und wenn man die Parameter ueber ein Kabel uebertraegt braucht man auch
> kein Intel Hex.

..aber ein Programm und Schnittstelle auf der PC-Seite ein wenig mehr 
Flash und Code, Pins, Performance, und "Drumrum" auf dem Boardseite. Und 
manchmal kommt es auch auf Größe an.

Grüße
Schiko

von Bernd E. (niro)


Lesenswert?

Hallo Schiko,

prima Tool, habe ich lange gesucht!
Kann man wirklich gut zum Editieren einzelner Zellen gebrauchen.
Hab nur das Problem, dass das Scrollen bei mir extrem langsam geht, da 
wird man fast wahnsinnig (Win7 pro 32).
Hast Du evetuell noch die Möglichkeit ein Suchen/Ersetzen mit einzubauen 
bzw. das EE mit Werten zu füllen (...musste ein 1Mb EE mit 00 füllen 
..:-( ).

Viele Grüße,
Niro

von Schiko (Gast)


Lesenswert?

Bernd E. schrieb:
> prima Tool, habe ich lange gesucht!

Danke

> Kann man wirklich gut zum Editieren einzelner Zellen gebrauchen.
> Hab nur das Problem, dass das Scrollen bei mir extrem langsam geht, da
> wird man fast wahnsinnig (Win7 pro 32).

ähm ja, ich könnte eine Menge zu beschleunigen,
wenn ich mir die zu ändernden Felder bei einem
Werte-Update merken würde,
da lohnt sich der Aufwand für mich nicht...
Vielleicht kann ich aber mit viel copy 'n past
die 1000 einfachen
myText.Format( .. value); myControl.Update( myText );
durch sinngemäße Abfragen:
myText.Format( .. value); if(myText != oldText) myControl.Update( myText 
);
ersetzen.
Bringt vielleicht ~Faktor 4


> Hast Du evetuell noch die Möglichkeit ein Suchen/Ersetzen mit einzubauen
> bzw. das EE mit Werten zu füllen (...musste ein 1Mb EE mit 00 füllen
> ..:-( ).

Das wäre kein großes Problem, aber meinst Du wirklich 1MB?
Ich habe ein simples Feld von 4kB je Datei.

Schiko

von Christian (Gast)


Lesenswert?

Hallo Schiko,

vielen Dank für das tolle Programm. Bei mir geht das Scrollen auch sehr 
langsam, aber das ist verschmerzbar.

Ich lese auch das EEPROM mit AVRStudio aus, verändere sie mit Deinem 
Programm und spiele sie zurück. Bei mir geht es um den Test von 
Firmwareupdates und auch die Parametrierung von Geräten.

Schönen Gruß,
Christian

von Stefan (Gast)


Lesenswert?

Servus!

Dürft ich mich mal beim verbessern Deines tollen Programms versuchen?
Ich würde gern mehr Geschwindigkeit herausholen versuchen, sowie das 
Suchen & Ersetzen implementieren!

Ich habe Erfahrung in Win32-Programmierung mit WinAPI, aber MFC hab ich 
mir bis jetzt noch immer nicht angesehn... Mal schaun, ob ichs 
kompilieren könnte. :)

lG,
Stefan

von Michael S. (schiko)


Lesenswert?

@Christian:
Danke

Stefan schrieb:
> Dürft ich mich mal beim verbessern Deines tollen Programms versuchen?
> Ich würde gern mehr Geschwindigkeit herausholen versuchen, sowie das
> Suchen & Ersetzen implementieren!
>
> Ich habe Erfahrung in Win32-Programmierung mit WinAPI, aber MFC hab ich
> mir bis jetzt noch immer nicht angesehn... Mal schaun, ob ichs
> kompilieren könnte. :)
>
> lG,
> Stefan

Ja, kannst Du versuchen. Ich stell morgen den Code hier rein.
Die MFC ist nicht bei den VS-Express-Versionen dabei(!). Es ist also
eine VS-Pro-Version notwendig. IIRC sollte es aber mit jeder Version
ab VC6 kompilierbar sei. Mit Versionen vor 2008: Neues MFC-Projekt
erstellen mit multibyte char, nicht Unicode,
alle neu erstellten Dateien rausschmeißen,
alle Quelldateien von mir (*.cpp, *.h , *.rc) hinzufügen.

Grüße
Schiko

von Bernd E. (niro)


Lesenswert?

Super Idee, dass Ihr an dem Projekt weiterarbeitet!!

Bin echt gespannt!

VG,
Niro

von Michael S. (schiko)


Angehängte Dateien:

Lesenswert?

Stefan schrieb:
> Dürft ich mich mal beim verbessern Deines tollen Programms versuchen?

hier der Quellcode im Anhang

von Heron (Gast)


Lesenswert?

Hallo,

auch wenn es schon etwas älter ist;

Ich finde das Programm super!!! Endlich mal wieder eine gute Idee!


Gibt es schon Weiterentwicklungen? Zbsp. mit Integration von AVRDUDE?

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

> Ich finde das Programm super!!! Endlich mal wieder eine gute Idee!

Ich hab grad mal versucht die "blrecover.hex" eines W700
damit zu bearbeiten. Huestel

GEHT NICH !!!!¹!!²!!!!!³!!!!!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du hast die Sourcen. Reparier's halt.

von Rolf B. (bucko)


Lesenswert?

Für einen Dank ist es nie zu spät:

Besten Dank für das Tool, hat mir sofort geholfen, um die User Signatur 
Row im Xmega zu befüllen.

Danke!

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.