www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Intel-HEX ___HEX-80


Autor: marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

bin gerade dabei meine ersten at's zu brennen(at89cx051).
ich habe mir den programmer von batronix nachgebaut.

programmentwicklung geschieht mit µvision2 von Keil in C.
beim compilieren wird auch ein hex-80 file erzeugt.
nur das einbinden des Hex-files in das prog-studio von batronix klappt
wohl nicht richtig.
es werden immer nur 6byte geladen

wenn ich aber ein beispielprogramm von batronix verwende klappts
100pro.


gibts da unterschiede in den hex-files? oder kann mir jemand sagen, was
ich falsch mache?

marko

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann schau Dir das File doch mal mit einem Editor an.

Es gibt neben Intel-Hex auch Motorola-Hex, also musst Du beim
Generieren schon das Format angeben, das der Progger sehen will, oder
es ins richtige umwandeln (es gibt genug utility-Programme dafür).

Oder Du nimmst das bin-Format, das ist eindeutig.

Autor: Markus_8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marko,

ich hatte auch schon diverse Probleme mit dem HEX-Format. Hatte mir
auch mal einen HEX2BIN-Converter geschrieben. Der konnte allerdings
keine "Löcher", sprich wenn im Code ungenutzte Speicherbereiche
waren, diese zu überspringen. Ebenso verhält es sich mit vielen
"preiswerten" Brennern. Vielleicht hat Deiner da auch Probleme.
Wandel die Datei vorher mal mit einem HEX2BIN-Converter um. Dann siehst
Du auch gleich, ob es wirklich eine 6-Byte Datei ist.


@Profi: Ich glaube´, µVision kann keinen BIN-Code ausgeben.

P.S.: HEX2BIN-Converter gibt es hier:
http://www.keil.com/download/docs/hex2bin.zip.asp

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal wieviele Zeilen die Hex Datei hat. Damit das HEX2BIN Utility
z.B. mit den AVR Studio Hex Dateien geht muss man die erste Zeile
löschen. Diese ist warscheinlich ein Zusatz um auch >64kB speichern zu
können.

Autor: marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ markus :
stimmt µvisio2 gibt kein .bin file aus
selbst der hex2bin converter akzeptiert das von µvision2 erzeugte
hex-file nicht

ein programm wurde auf zwei unterschiedlichen umgebungen geschrieben
1. µvision2
2. Ride

++ also das von µvisio2 erzeugte hex-file:

:09082A00120833C2967F407E1FC4
:0C083300EF4E6007EF1F70F81E80F522EA
:10080000C29712082FD29712082FC29712082FD220
:10081000977F987E3A12082AD2967F407E1F120850
:0A0820002AD2967F987E3A02083330
:0300000002083FB4
:0C083F00787FE4F6D8FD75810702080000
:00000001FF

++ das von Ride erzeugte hex-file:

:03000000020003F8
:0F000300758108E478FFF6D8FD75A0FF02001E96
:0C001200EE4F6007EF1F70F81E80F52213
:10001E00C2977E1F7F40120012D2977E1F7F401222
:10002E000012C2977E1F7F40120012D2977E3A7F37
:10003E0098120012C2967E1F7F40120012D2967E38
:10004E001F7F40120012C2967E1F7F40120012D2F6
:09005E00967E3A7F9812001222EE
:00000001FF

es sind unterschiede vorhanden bei gleichem code, wobei das von Ride
erzeugte hex-file von batronix's prog-studio akzeptiert wird und die
hardware funktioniert.

nun habe ich echt kein draht ständig mit drei programmen zu arbeiten.
3 programme....da ich gern mit µvision2 die programme entw. + simul.
dann müßte ich den code in Ride übertragen -> hex in prog-studio :(

so genug gejammert

hat jemand ne idee :D

Autor: Markus_8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marko,

ich habe Deine Zeilen, die µVision erstellt haben soll, in eine
hex-Datei gepackt und diese mit dem hex2bin von der Keil-Homepage in
eine bin-datei umgewandelt. Klappte problemlos. Heraus kam eine 2123
Bytes große Datei. Ab Adresse 0000 steht ein Sprung auf Adresse 083f.
Dort geht es auch weiter. Ob das sinnvoll ist, was da dann steht war
mir ohne Disassembler etwas mühsam nachzuvollziehen.

Also, warum kann er das bei Dir nicht konvertieren?

Gruß,
Markus

Autor: Markus_8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade noch etwas gefunden: Wenn es mit dem Konvertieren nach *.bin
dann klappt kommt das nächste Problem auf Dich zu:

Ich vermute, Du hast eine Demoversion vom Keil-µVision. Diese hat
verschiedene Beschränkungen (siehe Kiel-Homepage). Eine davon ist, daß
der vom C-Compiler erzeugte Code ab Adresse 0x0800 liegt. Das heißt, er
wird auf einem 89C1051 oder 89C2051 nicht laufen. Wenn Du einen 89C4051
zur Hand hast: Bingo, das könnte klappen! Ansonsten schreib Dein
Programm in Assembler!

CU,
Markus

Autor: marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, danke erst mal.

marko

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.