www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Codevision - Hex-File-Format


Autor: Stephan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Morgen,

ich hab einen BL für einen ATMEGA2561 mit CodeVision geschrieben und 
wollte den nun von einem Programmierzentrum in meine Chips brennen 
lassen.
Leider bekommt das PG-Zentrum das nicht richtig 'gebacken'. :-(

Der Aussagen nach des PG-Zentrum ist mein Hex-File falsch.

kurz zur Info: wenn ich das Hex-File mit den CV in die Rechner schreibe 
läuft alles SUPER :-). (siehe Anhang)

Jetzt wollte ich den Leuten beweisen das mein File richtig ist, aber 
leider bekomme ich das Hex-File nicht richtig dekodiert, ich hoffe Ihr 
könnt mir helfen.

Der Bootloader-Bereich des ATMEGA2561 sollte bei der Adresse 0x0001FC00 
anfangen, das wird auch im CV richtig angezeigt, aber hier fängt das 
File ab der Adresse: 0x0003F800 an ( 0x0000F800 + (0x00003000 << 4)).

hier mal die ersten 3 Zeilen des Hex-Files:

:02 0000 02 3000 CC
:0A F800 00 0D9467FC0D9400FC0D94 BC
:10 F80A 00 00FC0D9400FC0D9400FC0D9400FC0D94 7A

danke
Stephan

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan wrote:

> Der Aussagen nach des PG-Zentrum ist mein Hex-File falsch.

Jags mal durch hex2hex.
Manche wollen die Rekords in streng aufsteigender Reihenfolge.


Oder das Codevision hat sich irgendwelche unbekannten Records für die 
Fusebits ausgedacht. Die funktionieren dann natürlich nur mit dem 
Codevision-Programmer.
Es sollte dann aber in Codevision einstellbar sein, daß es echte 
Hexfiles erzeugt.


Peter

Autor: FBI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

0x0003F800 = 2 * 0x0001FC00

Im Hexfile steht die *BYTE*adresse, CV zeigt Dir die *WORD*adresse.
Schau Dir im Datenblatt mal an, wie der PC vom AVR funktioniert. Dann 
wird Dir klar warum das so ist.

CU

Autor: Klaus Leidinger (klausleidinger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Codevision benutzt doch zum erzeugen des Hexfiles den AVR Assembler 
(avrasm2).
Im Zielverzeichnis befindet sich eine Datei AvrBuild.bat, dort stehen 
die verwendeten Befehle drin.

@Stefan: sind die Leerzeichen von Dir eingefügt worden?

Wäre zu prüfen, welchen Programmer das Programmierstudio benutzt. 
Eventuell ist der noch gar nicht für den Adressraum des 2561 
vorbereitet?

Wie ist denn deren Fehlermeldung?

Grüße,
Klaus

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die Antworten.

@ Klaus Leidinger
ja, die Leerzeichen waren von mir. was die Leute im PG-Zentrum verwenden 
sagen sie leider nicht, ich erkenne nur den Fehler wenn sie mir ein 
Muster schicken und der Bootloader nicht funktioniert. :-(
die Datei "AvrBuild.bat" habe ich in meiner Installation von CVA nicht 
gefunden.

@ FBI
hab ich gemacht und gesehen das beim AVR der Flash mit 16Bit 
angeschlossen ist. "...the Flash is organized as 32K/64K/128K x 16.."
(hätte ich wissen müssen!)
aber wie hilft mir das jetzt weiter???

hab das hier gefunden:
C. Load Data Low Byte
1. Set XA1, XA0 to “01”. This enables data loading.
2. Set DATA = Data low byte (0x00 - 0xFF).
3. Give XTAL1 a positive pulse. This loads the data byte.
D. Load Data High Byte
1. Set BS1 to “1”. This selects high data byte.
2. Set XA1, XA0 to “01”. This enables data loading.
3. Set DATA = Data high byte (0x00 - 0xFF).
4. Give XTAL1 a positive pulse. This loads the data byte.

heist das der AVR wird immer mit 16Bit programmiert??? und ich kann ihn 
dan garnicht mit 8Bit programmieren???

Stephan

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan wrote:
> ja, die Leerzeichen waren von mir. was die Leute im PG-Zentrum verwenden
> sagen sie leider nicht, ich erkenne nur den Fehler wenn sie mir ein
> Muster schicken und der Bootloader nicht funktioniert. :-(

Das hex-File ist ja nur eine Sache, da steht nur der Programmcode drin.

Du must ihnen außerdem noch die richtigen Fuse-settings mitschicken.


Peter

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

@ Peter
ja, das mit den FUSE hatte ich natürlich auch gemacht und die sind auch 
schon x-mal kontrolliert worden und sind so wie ich sie wollte.
Aber das BL-Programm steht NIE an der stelle wo ich es hin haben will.
AN: 0x0001FC00  <- laut FUSE-BITS

Stephan

Autor: Klaus Leidinger (klausleidinger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stefan,

welchen Programmer(Hardware) benutzt Du denn? Probier doch mal, das 
Hexfile nicht mit Codevision, sondern z.B.  mit dem AVRStudio Programmer 
zu brennen. Das würde ausschließen, dass da eine "Sonderbehandlung" 
durch den CV Programmer erfolgt.

Das AVRbuild.bat sollte im gleichen Verzeichnis liegen wie das c-File 
und das hex File.

Durch die 16 Bit decodierung müsste die 0xF800 aus dem Hexfile ja *2 auf 
1F000 landen, aber wer macht diese Konvertierung?...und, wo steht das 
Zielprogramm denn? Gemäß dem Hexfile müsste es doch an F800 stehen.

Welche Version des AVRStudio hast Du auf dem Rechner? und welche von 
Codevision? Ich habe gerade gesehen, das CV eine ältere Version des 
avrasm2 benutzt, allerdings heist das noch nicht, das die alte version 
das nicht kann.

Grüße,
Klaus

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.