mikrocontroller.net

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


Autor: Dieter Erlewein (Gast)
Datum:
Angehängte Dateien:

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

Autor: Peter Dannegger (peda)
Datum:

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

Wenns klappt, kannst es ja ins Make mit reinschreiben.


Peter

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.