Forum: Mikrocontroller und Digitale Elektronik Störende Adressoffsets in ausgelesen EEPROM-Datei entfernen


von Thomas (kosmos)


Lesenswert?

Hallo, ich habe heute zu debugzwecken einige Daten ins EEPROM schreiben 
lassen, welche ich dann im AVR-Studio3(nicht schlagen langsamer Laptop) 
ausgelesen habe und automatisch in ein HEX-File gespeichert habe. Leider 
ist die Datei mit den Adressen verunstaltet, gibt es ne Möglichkeit das 
im AVR Studio zu deaktivieren oder vielleicht ein Programm welches mir 
eine normale Binärdatei  erstellt wo nur die Nutzdaten drin sind?

Oder kennt jemand nen Hexeditor der diese Adressoffsets erkennt und 
nicht als Daten anzeigt, da ich mir eine Datenfolge des ADc anschauen 
will und da die Adressen zw. den Daten stören.

von Hannes L. (hannes)


Lesenswert?

Lade doch die EEP-Datei in den Simulator. Über Debug,Up/Download Memory 
kommst Du da hin. Dann kannst Du die Werte im Memoryfenster (Alt-4) 
ansehen.

Es wird vermutlich Konvertierungsprogramme geben, habe ich aber noch nie 
gebraucht, ich kann Intel-Hex auch so lesen. Such' mal nach 
Intel-Hex-Format, dann kannst Du das auch.

...

von Thomas (kosmos)


Lesenswert?

die EEP Datei wird aber nur erstellt wenn man die Daten im Quelltext 
fürs EEPROM deklariert also

.eseg
.db x,y,z

wenn der  µC aber selbst was ins EEPROM schreibt dann kann man das nur 
auslesen und es wird als HEX-File gespeichert. Mit Notepad(Editor) wird 
zwar der Adressoffset untereinander angezeigt aber leider habe ich da 
nur HEX Werte für einen schnelleren Überblick hätte ich das aber gerne 
in DEZ was mit dem Editor nicht möglich ist, wenn ichs mit eine 
HEX-Editor lade sind die Adressen halt mit den Daten vermischt, also 16 
Byte Daten einige Adressdaten udn wieder 16 Byte Daten....

von Holger K. (krulli) Benutzerseite


Lesenswert?

Du mußt das Intel-Hex Format in das Binärformat wandeln, was zum 
Beispiel auch ein Hexeditor macht. Versuch mal den Winhex

von Hannes L. (hannes)


Lesenswert?

Thomas O. wrote:
> die EEP Datei wird aber nur erstellt wenn man die Daten im Quelltext
> fürs EEPROM deklariert also
>
> .eseg
> .db x,y,z

Wobei .db x,y,z schonmal falsch ist, denn die Anzahl der Bytes muss 
aufgrund der 16-Bit-Breite des Flash immer geradzahlig sein. 8-P

>
> wenn der  µC aber selbst was ins EEPROM schreibt dann kann man das nur
> auslesen und es wird als HEX-File gespeichert.

Dann erkläre mir doch bitte mal den Unterschied im Dateiaufbau. Beides 
ist eine Textdatei im Intel-Hex-Format und kann mit jedem Textbetrachter 
oder Editor (Text, kein Hex) angesehen werden. Falls Dich der 
Unterschied .hex / .eep stört, das kanst Du jederzeit mit Shell-Mitteln 
(Rename oder ein Klicki-Bunti-Pendant dazu) ändern.

> Mit Notepad(Editor) wird
> zwar der Adressoffset untereinander angezeigt aber leider habe ich da
> nur HEX Werte für einen schnelleren Überblick hätte ich das aber gerne
> in DEZ was mit dem Editor nicht möglich ist,

Das wäre von einem Text-Editor auch etwas viel verlangt, denn in der 
.hex oder .eep-Datei steht ja schon die Hexversion als Klartext.

> wenn ichs mit eine
> HEX-Editor lade sind die Adressen halt mit den Daten vermischt,

Quatsch, die sind schon vorher zusammen, nur nicht "vermischt", sondern 
nach einem System. Ignoriere doch beim Lesen einfach in jeder Zeile die 
ersten 4 Bytes (8 Hex-Ziffern) und das letzte Byte (2 Hex-Ziffern). Die 
16 Bytes dazwischen sind Deine Nutzdaten. Und wenn Du Hex nicht 
interpretieren kannst, dann hast Du Lernbedarf, denn HEX ist nicht für 
Maschinen (Controller, Computer) gemacht, sondern für deren Benutzer 
(Menschen), denn die Maschinen brauchen Hex nicht, die rechnen binär 
(und nur binär, was anderes können die nicht).

> also 16
> Byte Daten einige Adressdaten udn wieder 16 Byte Daten....

Nicht "einige" Adressdaten, sondern
- Doppelpunkt
- 2 Byte Adressdaten
- 1 Byte Frametyp
- 16 Bytes Nutzdaten
- 1 Byte Prüfsumme
wenn ich jetzt richtig erinnere.

Mach's doch nicht komplizierter als es ist.

Holger, ein hex2bin-Programm würde Thomas auch nicht helfen, denn dann 
hat er die Werte binär und muss sie bei der Anzeige wieder in dezimal 
umwandeln.

...

von crazy horse (Gast)


Lesenswert?

Wobei .db x,y,z schonmal falsch ist, denn die Anzahl der Bytes muss
aufgrund der 16-Bit-Breite des Flash immer geradzahlig sein. 8-P...

der EEPROM ist Byte-organisiert.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hannes Lux wrote:
> Wobei .db x,y,z schonmal falsch ist, denn die Anzahl der Bytes muss
> aufgrund der 16-Bit-Breite des Flash immer geradzahlig sein. 8-P
>
Hannes, Hannes! Der EEPROM ist aber schon byte orientiert :P

von Hannes L. (hannes)


Lesenswert?

crazy horse wrote:
> Wobei .db x,y,z schonmal falsch ist, denn die Anzahl der Bytes muss
> aufgrund der 16-Bit-Breite des Flash immer geradzahlig sein. 8-P...
>
> der EEPROM ist Byte-organisiert.

Jaaaaaaaaaaaaaaaaaaaaaaaaaaa........

Himmelhinternundwolkenbruch... Wo war ich nur mit meinen Gedanken...
(schäm)

Aber danke dür den Widerspruch, das darf so nicht unwidersprochen stehen 
bleiben.

...

von Thomas (kosmos)


Lesenswert?

muss mich echt über den Tonfall wundern, als hätte ich hier jemanden 
angegriffen.

Wollte eignetlich nur sagen das mir eine EPP Datei ja von Studio erzeugt 
wird und nicht vom µC. Wie das organisiert ist speilte keine Rolle. 
Werde das mit dem einlesen des EEPROM mit UP/Download Memory probieren.

Die Ansicht mit Notepad ist ja ok
- Doppelpunkt - 2 Byte Adressdaten - 1 Byte Frametyp - 16 Bytes 
Nutzdaten - 1 Byte Prüfsumme

nur stört mich hier das die eigentlichen Daten im Hex Format angezeigt 
werden ich hätte es aber gerne im Dezimal-Format um nicht erst mit dem 
Rechner das umzuwandeln.

In einem Hexeditor kann ich das zwar auf dezimal umstellen dort habe ich 
aber nicht die 16 Bytes jeweils untereinander sondern diesen 
Doppelpunkt, Byteadresse, Frametyp usw untergemischt die das AVR-Studio 
mit in die Datei schreibt.

Werde das mal mit Winhex ausprobieren, ob sich da was machen läßt 
ansonsten muss ich die Bereiche rausschneiden, damit Sie die Ansicht 
nicht stören.

Vielleicht kennt ja jemand ein Programm für mich das aus dem Intel Hex 
wieder ein Binärfile macht ohne diesen Adressvorsatz und Prüfsumme.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Binärformat wird dir nix nützen...
Was du willst ist HEX zu DEZ, kannst du dir mit jeder Programmiersprache 
schenll ein kleines programm zusammenzimmern.
Hast du Java? Dann schick mir mal die EEP Datei dann mach ich dir eben 
schnell nen Konverter für...

von Hannes L. (hannes)


Lesenswert?

Thomas O. wrote:
> muss mich echt über den Tonfall wundern, als hätte ich hier jemanden
> angegriffen.

Das interpretierst Du falsch. Ich könnte mich z.B. darüber wundern, was 
Du für "einfache" Probleme hast, obwohl Du schon verdammt lange in 
diesem Forum über höherkarätigere Dinge diskutierst. ;-)

>
> Wollte eignetlich nur sagen das mir eine EPP Datei ja von Studio erzeugt
> wird und nicht vom µC.

Das ist bekannt. Ich halte es aber für möglich, dass man das 
Speicherformat irgendwo im Studio einstellen kann. Wo, weiß ich jetzt 
nicht, da mich das Intel-Hex-Format nicht stört.

> Wie das organisiert ist speilte keine Rolle.

Nein, das spielt eine große Rolle, wenn man die Daten interpretieren 
will.

> Werde das mit dem einlesen des EEPROM mit UP/Download Memory probieren.

Ja, mach' das, dann sind die Daten im Memory-Fenster des Simulators 
sichtbar, wo sie hex, dez, bin, 8-bittig, 16-bittig usw gezeigt werden.

>
> Die Ansicht mit Notepad ist ja ok
> - Doppelpunkt - 2 Byte Adressdaten - 1 Byte Frametyp - 16 Bytes
> Nutzdaten - 1 Byte Prüfsumme
>
> nur stört mich hier das die eigentlichen Daten im Hex Format angezeigt
> werden ich hätte es aber gerne im Dezimal-Format um nicht erst mit dem
> Rechner das umzuwandeln.

Die Hex-Darstellung wurde gewählt, damit sie ein Mensch lesen kann.

>
> In einem Hexeditor kann ich das zwar auf dezimal umstellen

Ein Hexeditor macht die Darstellung selbst und verwaltet intern die 
Daten binär. Eine Intel-Hex-Datei enthält aber die Daten (incl. 
Wasserkopf) bereits in Textform. Der Editor, den Du suchst, müsste die 
Hexdatei beim Einlesen in binär umwandeln und bei der Anzeige in das von 
Dir bevorzugte Anzeigeformat.

> dort habe ich
> aber nicht die 16 Bytes jeweils untereinander sondern diesen
> Doppelpunkt, Byteadresse, Frametyp usw untergemischt die das AVR-Studio
> mit in die Datei schreibt.
>
> Werde das mal mit Winhex ausprobieren, ob sich da was machen läßt
> ansonsten muss ich die Bereiche rausschneiden, damit Sie die Ansicht
> nicht stören.
>
> Vielleicht kennt ja jemand ein Programm für mich das aus dem Intel Hex
> wieder ein Binärfile macht ohne diesen Adressvorsatz und Prüfsumme.

Ja, hier sind etliche aufgelistet:
http://www.google.de/search?hl=de&q=hex2bin&btnG=Google-Suche&meta=lr%3Dlang_de%7Clang_en

...

von Hannes L. (hannes)


Lesenswert?


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.