mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fujtisu MC16FX Bytes in einer MHX Datei ändern


Autor: Michael S. (jackson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte bei einer Elektronik die mit einem Fujitsu MC 16FX arbeitet 
die Baudrate erhöhen. Ich habe auch schon die passenden zwei Bytes (des 
BGR3 Registers) die getauscht werden müssen ermittelt.

Es ist leider nur die FW Datei in mit .MHX Endung vorhanden. Diese ist 
wohl im S-Format (Notorola) geschrieben. Dieses Format arbeitet mit 
Checksummen und leider müssten ab der Änderung alle CS neu berechnet 
werden.

Gibt es dafür ein feriges Progemm oder einen Editor der diese Aufgabe 
erledigt? Habe es schon mit Convertern versucht aber leider ohne Erfolg 
(es kommt dann Fehlermeldung das MHX-Datei fehlerhaft ist).

Gruß
Jackson

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Mit objcopy (aus den GNU binutils) sollte das kein Problem sein. Zuerst 
das srec in eine reine Binärdatei umwandeln, die Bytes entsprechend 
anpassen und dann wieder zurück nach srec. Evtl. wird die srec Datei 
dann etwas größer. Oder aber du änderst die Bytes direkt im srec und 
passt die Prüfsummer der Zeile an. Die Prüfsummer bezieht sich immer nur 
auf die jeweilige Zeile.

http://de.wikipedia.org/wiki/Srec

Matthias

Autor: Michael S. (jackson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist du mit der Prüfsumme sicher? Bei meiner Beispielrechnung klappte es 
nur wenn ich die Prüfsumme der vorherigen Zeile mit eingerechnet habe...

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ja, bin mir sicher. Der Wikipediaartikel bestätigt das dann nochmal. 
Kannst ja mal das srec und die zu ändernde Position posten.

Matthias

Autor: Michael S. (jackson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

anbei der Code:
S214FE1A9AD060327293063316FE03D160287273063E
S214FE1AAA7293060C3862806F0DCBFEBBFEF103D135
S214FE1ABA6013BBFE5B5679DD53507971DF51791799
S214FE1ACADA535379D0096608004808F0135A2C0DE3

Die Hexdaten: 5679DD535 in der dritten Zeile müssen in 5679EE29 geändert 
werden.

Gruß

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

da passt was nicht zusammen. Die zwei Datensätze haben nicht die gleiche 
Länge.

Matthias

Autor: Michael S. (jackson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier nochmal ein größeres Stück...
S210FE1A2E05BBFE7633065F03096608045F
S214FE1A3A719F040171B3FC7193067073FCFE124328
S214FE1A4AFF1C7033067013FC180100000060086065
S214FE1A5A067193FC703306096608004F30715F0400
S214FE1A6A01659618FE651F19FE6C42625F30096BA9
S214FE1A7A0802525179D32CF00771DF51791060F2C1
S214FE1A8AD0535379D04908658C15FE729306F10336
S214FE1A9AD060327293063316FE03D160287273063E
S214FE1AAA7293060C3862806F0DCBFEBBFEF103D135
S214FE1ABA6013BBFE5B5679DD53507971DF51791799
S214FE1ACADA535379D0096608004808F0135A2C0DE3
S214FE1ADA4C65021AFE5D3BE803FE03D1600360E92D
S214FE1AEAD0096608004F01719F04015B2C0DBB06E8
S214FE1AFAF004BB08F102601FBB065B2E0DBB08494D
S214FE1B0A08737F08015A2E0D98D1285B2E0D72880F
S214FE1B1A5352796C7853795F01096608004F01487B
S214FE1B2A08F1066C5853796012737F08015A2E0D17
S213FE1B3A98D1285B2E0D72885352795F01096B86
S214FF810A0000000000000000000000000000000061
S214FF811A0000000000000000000000000000FF074B
S214FF812A0000000000000000000000000000000041

Autor: Danie Düsentrieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael S.,

ich würde Dir die Software von Galep empfehlen. Die kann auch in einer 
Demoversion MHX Files einlesen und Speicherbereiche verändern und diese 
dann wieder als MHX File ausgeben.

Grüße

Autor: Michael S. (jackson)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für den Tipp mit Galep, der kann das tatsächlich...

Aber leider ist das neue mhx-File nach dem speichern ca. 1.5MB groß (das 
org. nur 31KB). Und wenn ich das über den Updateflasher einspielen will 
gibt er mir Fehlermeldung das das mhx-File beschädigt ist.

Also bin ich immer noch nicht weiter...

Im Anhang befindet sich die org. MHX (einfach JPG-Endung entfernen)

Vielleicht hat ja noch jemand ne Lösung für mich...

Gruß
Jackson

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

hättest du mir darauf geantwortet als ich dich darauf hingewiesen habe 
das die auszutauschenden Daten unterschiedlich lang (4 zu 4,5 Byte) sind 
hätte ich dir sicher helfen können. Evtl. schaust du nochmal nach.

Matthias

Autor: Michael S. (jackson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mattihas,

jetzt verstehe ich erst was du von mir woltest...

Natürlich sind beide Datensätze gleichlang ich habe mich nur vertippt! 
:-(

5679DD53 müssen in 5679EE29 geändert werden...

Gruß
Jackson

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

hier der diff der Originaldatei und der entsprechend geänderten
--- SL-Tiny.mhx  2010-08-25 14:01:43.857550408 +0200
+++ SL-Tiny.mod.mhx  2010-08-25 14:13:15.020051856 +0200
@@ -473,7 +473,7 @@
 S214FE1A8AD0535379D04908658C15FE729306F10336
 S214FE1A9AD060327293063316FE03D160287273063E
 S214FE1AAA7293060C3862806F0DCBFEBBFEF103D135
-S214FE1ABA6013BBFE5B5679DD53507971DF51791799
+S214FE1ABA6013BBFE5B5679EE29507971DF517917B2
 S214FE1ACADA535379D0096608004808F0135A2C0DE3
 S214FE1ADA4C65021AFE5D3BE803FE03D1600360E92D
 S214FE1AEAD0096608004F01719F04015B2C0DBB06E8

Einfach die Prüfsumme für die Zeile neu berechnen und gut.

Und hier die Ausgabe von srec_info was zeigt das die Prüfsummer korrekt 
ist.
$ srec_info SL-Tiny.mod.mhx
Format: Motorola S-Record
Header: "SL-Tiny-CAN1"
srec_info: SL-Tiny.mod.mhx: 141: warning: data records not in strictly ascending
    order (expected >= 0xFE09E9, got 0xFE0000)
Execution Start Address: 00000000
Data:   FE0000 - FE0002
        FE0004 - FE0005
        FE0008 - FE03FE
        FE0400 - FE158A
        FE158C - FE27A0
        FE27A2 - FE27DB
        FF8000 - FF8060
        FF8062 - FF80AC
        FF80AE - FF80C0
        FF80C2 - FF8139
        FFFF54 - FFFFDF

Matthias

Autor: Michael S. (jackson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat geklappt, Danke dir!

Ich hatte bei meinen versuchen den Wert für die Länge der Bytes nie mit 
eingerechnet...

Gruß
Michael

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.