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
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.
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.
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
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.
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
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
Hi
>Die Fehlermeldung bezieht sich>auch nicht auf die Datei, sondern einen Record innerhalb der Datei.
Mein Disassembler übersetzt es problemlos.
MfG Spess
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
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.
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