Forum: Mikrocontroller und Digitale Elektronik Mit Atmel Studio Intel Hex File erzeugen


von stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Programm für ATTiny25 erstellt und möchte diese nun per 
UpdateLoader_2.2.4 von http://www.leo-andres.de/category/projekte/ in 
den uC spielen. Mein Problem ist nur, dass ich schon ganz beim Einlesen 
von dem Hex-File scheitere, siehe Bild. Ich vermute, dass mein Atmel 
Studio 6.2 kein Intel Hex Files erstellt. Anders kann ich es mir nicht 
erklären.

Kann mir einer Helfen? Muss man was in Atmel Studio einstellen, das 
Intel Hex File erstellt wird?

Viele Grüsse

Stefan

von spess53 (Gast)


Lesenswert?

Hi

>Ich vermute, dass mein Atmel Studio 6.2 kein Intel Hex Files erstellt.

Was sonst?

MfG Spess

von Bernd K. (prof7bit)


Lesenswert?

Wenn eine Datei rauskommt mit der Endung .hex dann kannst Du Gift drauf 
nehmen dass das ein gültiges Intel-Hex-File ist. Der Fehler muss 
woanders liegen.

Am besten Du fragst den Autor der komischen Software da aus dem 
Screenshot was die seltsame Fehlermeldung zu bedeuten hat.

von npn (Gast)


Lesenswert?

stefan schrieb:
> Ich vermute, dass mein Atmel
> Studio 6.2 kein Intel Hex Files erstellt.

Dann schau doch nach, ob eins erzeugt wird. Warum vermutest du das nur?
Geh ins Projektverzeichnis und suche nach einem File mit der Endung 
*.hex und kontrolliere das Erstellungsdatum. Daran kannst du ja sehen, 
ob es zum Zeitpunkt des Compilierens erstellt wurde. Wenn ja, dann hast 
du es gefunden.

von Dietrich L. (dietrichl)


Lesenswert?

npn schrieb:
> Geh ins Projektverzeichnis und suche nach einem File mit der Endung
> *.hex und kontrolliere das Erstellungsdatum. Daran kannst du ja sehen,
> ob es zum Zeitpunkt des Compilierens erstellt wurde. Wenn ja, dann hast
> du es gefunden.

Bei der Fehlermeldung "Ungültiger Record" ist das aber egal, ob die 
Hex-Datei aktuell oder uralt ist.
Besser wäre es, die Datei mit einem Text-Editor anzuschauen. Dann kann 
man sehen, ob das ein gültiges Intel-Hex-Format ist.

Gruß Dietrich

von npn (Gast)


Lesenswert?

Dietrich L. schrieb:
> Bei der Fehlermeldung "Ungültiger Record" ist das aber egal, ob die
> Hex-Datei aktuell oder uralt ist.

Ja, da hast du recht. Das habe ich übersehen. Ich ging nur davon aus, 
daß Stefan schrieb, es würde vermutlich kein *.hex-file erstellt. Da 
nahm ich an, es würde gar kein File erzeugt.

von stefan (Gast)


Lesenswert?

Also soweit ich beurteilen kann ist das ein Intel Hex File, ausser ich 
habe in Wiki was falsch verstanden

:100000000EC01BC01AC019C018C017C016C015C03A
:1000100014C013C012C011C010C00FC00EC01124F4
:100020001FBECFEDCDBF20E0A0E6B0E001C01D9225
:10003000A836B207E1F745D0ACC0E2CF87B18F73E5
:1000400087B983E086B9379A369A3699FECF84B15C
:1000500095B1089597B18F71907E982B97B9369A84
:100060003699FECF84B195B10895CF92DF92EF9289
:10007000FF921F93CF93DF93182FD62F662371F033
:10008000C0E0C12CD12C7601812FE4DFC80ED91E2F
:10009000E11CF11CCF5FCD13F7CF03C0C12CD12CD5
:1000A00076012D2F30E040E050E0C701B6014FD07F
:1000B000C901DF91CF911F91FF90EF90DF90CF901A
:1000C000089542D0BBDF10926700109266008CE664
:1000D00091E0909365008093640089E591E09093AE
:1000E000610080936000109263001092620064E6E9
:1000F00083E0BBDF909363008093620020916000F7
:100100003091610082179307B0F4C19B14C0109224
:1001100063001092620064E683E0A7DF90936300BF
:1001200080936200209160003091610082179307F4
:10013000D0F6C198D8CF209164003091650028177F
:10014000390788F6C19ACFCFB99AC1980895A1E22C
:100150001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F41
:10016000FF1FA217B307E407F50720F0A21BB30B8C
:10017000E40BF50B661F771F881F991F1A9469F708
:1001800060957095809590959B01AC01BD01CF0164
:060190000895F894FFCF72
:040000050080006611
:00000001FF

von Paul Baumann (Gast)


Lesenswert?

>>Ich vermute, dass mein Atmel Studio 6.2 kein Intel Hex Files erstellt.
spess53 schrieb:
> Was sonst?

Vielleicht eine .elf-Datei?

MfG Paul

von stefan (Gast)


Angehängte Dateien:

Lesenswert?

anbei die .elf

von TomA (Gast)


Lesenswert?

Hallo stefan,

das ist eindeutig eine Intel-Hex Datei. Die Fehlermeldung bezieht sich 
auch nicht auf die Datei, sondern einen Record innerhalb der Datei. Jede 
Zeile in deiner Datei ist ein Record und beginnt mit dem Startzeicen 
":". Darauf folgt die Anzahl der Datenbytes als zweistellige Hexzahl. 
Danach die Speicheradresse, des ersten Datenbyte des Record, als 
vierstellige Hexzahl. Dahinter der Recordtyp als zweistellige Hexzahl 
(00=Daten-, 01=Endrecord). Dann die einzelnen Datenbyte deren Anzahl und 
Adresse zuvor angegeben waren. Zuletzt eine Prüfsumme als zweistellige 
Hexzahl.

:100000000EC01BC01AC019C018C017C016C015C03A

Zur Übersicht getrennt:

: 10 0000 00 0E C0 1B C0 1A C0 19 C0 18 C0 17 C0 16 C0 15 C0 3A

: = Start
10 = Anzahl 16 Datenbyte
0000 = Speicheradresse 0
00 = Typ - Daten
0E - C0 = die 16 Datenbyte
3A = Prüfsumme

Die Fehlermeldung legt nahe, daß mit einem (oder mehreren) der Records 
etwas nicht stimmt. Es gibt verschiedene HEX-Formate, vieleicht braucht 
der Empfänger eines der Anderen?

Gruß. Tom

von stefan (Gast)


Lesenswert?

Hallo Tom,

danke für die Hilfe!

Ich habe nach der Anleitung von Peter Dannegger gearbeitet.

http://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger#Assemblieren_des_Bootloaders_.28Urspr.C3.BCngliche_Version_von_Peter_Dannegger.29

Ich frage mal den Ersteller des Programms, was ich falsch gemacht habe.

Gruss

Stefan

von spess53 (Gast)


Lesenswert?

Hi

>Die Fehlermeldung bezieht sich
>auch nicht auf die Datei, sondern einen Record innerhalb der Datei.

Mein Disassembler übersetzt es problemlos.

MfG Spess

von Paul B. (paul_baumann)


Lesenswert?

Das Programm ist die Bedienoberfläche für das Programm "Fastboot" von
Peter Danegger. Das nimmt normalerweise das Intel-hex-Format.

MfG Paul

von holger (Gast)


Lesenswert?

Lösch mal die vorletzte Zeile:

:040000050080006611

von Georg (Gast)


Lesenswert?

Hallo,

selbst mein uralter DOS-basierter Programmer liest das und sagt dazu 
"Intellec-86 Format found". Dem Hexfile fehlt also garnichts. Der Fehler 
liegt beim Einleseprogramm.

Georg

von Leo H. (Gast)


Lesenswert?

Hallo zusammen,

danke für die Fehlersuche! Der Vorschlag von Holger funktioniert.

Mein Programm unterstützt nur die Record-Typen 0, 1 & 2.
Die restlichen Typen hatte ich damals in keiner Hex-Datei für einen 
Atmega gefunden, außerdem ist mir keinen sinnvolle Verwendung dafür 
eingefallen. Um keine ungültigen Daten zu laden bricht der Import 
komplett ab.

Wofür der Record-Typ 5 verwendet wird weiß ich nicht, hat der 
Bootloader/Atmega eine Möglichkeit die Startadresse einzustellen?

Für die nächste Version baue ich eine bessere Import-Funktion, bei 
sinnlosen Records sollte das nicht komplett abbrechen.

von spess53 (Gast)


Lesenswert?

Hi

>Für die nächste Version baue ich eine bessere Import-Funktion, bei
>sinnlosen Records sollte das nicht komplett abbrechen.

Wer sagt, das die sinnlos sind? Der AVR-Assembler muss schließlich mit 
Flashgrößen bis zu 384kB umgehen können. Einfacher ist es alle 
Recordtypen zu implementieren.

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.