Gast
#398555
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