www.mikrocontroller.net

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


Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: Holger Krull (krulli) Benutzerseite
Datum:

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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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=G...

...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.