Forum: Mikrocontroller und Digitale Elektronik uniprog von P. Dannegger mit von SDCC erstellten hex-files


von Dieter Erlewein (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

vor längerer Zeit habe ich Peter Danneggers Universalprogrammer für
89c4051 u. a. nachgebaut. Dieser und die dazugehörige Software
"uniprog" funktioniert tadellos. Allerdings habe ich vor Kurzem erste
Schritte mit SDCC unternommen. Hierbei bin ich auf folgendes Problem
gestoßen:

Erstelle ich mit SDCC ein Intel-HEX file, welches im Anschluß mit
"packihx" etwas "aufgeräumt" wird, kann dieses mit Peter Danneggers
uniprog.exe und seinem Programmer nicht auf einen Mikrocontroller
geschrieben werden. Der Programmiervorgang wird immer mit der
Fehlermeldung "write-error 31" abgebrochen.

Wenn ich allerdings das mit SDCC (und packihx) erstellte Intel-Hex file
zunächst mit einem Intel-HEX Editor (z. B. der in der Ansteuersoftware
für das Programmiergerät "Galep" von Conitec enthaltene Editor)
öffne, erneut abspeichere und dieses File dann mit uniprog und Peter
Dnneggers Programmiergerät auf einen Mikrocontroller schreibe, tritt
der oben erwähnte Fehler nicht auf.

Im Anhang dieses Beitrags finden sich beispielhaft zwei Intel-HEX
files. Prinzipiell sollen diese sieben LEDs an den ersten sieben Bits
von Port 1 eines 89c2051 nacheinander ein- und ausschalten.
"led_sdcc.hex" wurde mit sdcc und packihx erstellt. "led_mod.hex"
wurde durch das Öffnen und erneute Abspeichern von "led_sdcc.hex" mit
oben genanntem Editor erstellt. Mit "led_mod.hex" kann uniprog
umgehen, mit "led_sdcc.hex" nicht.

Vergleicht man den Inhalt dieser beiden Dateien stellt man deutliche
Abweichungen fest (Zeilenlänge, ...). Allerdings kenne ich mich mit dem
Intel-HEX Format zu wenig aus um diese Abweichungen deuten zu können.

Nun meine eigentliche Frage:

Kennt jemand dieses Problem und weis Abhilfe - vielleicht in Form eines
kleinen Tools welches die Konvertierung von "*_sdcc.hex" in
"*_mod.hex" ohne den aufwändigen Umweg über einen Editor oder
ähnliches vornimmt - ?

Danke für Eure Tips.

Viele Grüße

Dieter

von Peter D. (peda)


Lesenswert?

Die Meldung heißt eigentlich, daß ein Schreiben auf 31h fehlschlug, weil
da wohl schon was anderes steht oder das Schreiben zu lange dauert.

Ich hab schon ewig nichts mehr an dem Programm gemacht.

Kannst ja mal versuchen mit hex2hex die Bytes in eine Reihe zu
bringen.

http://www.semiconductors.philips.com/products/microcontrollers/support/software_download/8051/index.html

Wenns klappt, kannst es ja ins Make mit reinschreiben.


Peter

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.