uniprog von P. Dannegger mit von SDCC erstellten hex-files

Gast #398555
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
Angehängte Dateien:
#398556
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.