Hallo, ich habe ein problem mit dem elf-File Format und komme nicht
weiter. Ich kann mir das auch nicht erklären, vielleicht habe ich ein
Verständnisproblem!
ich habe ein Programm geschrieben (AVRStudio / WinAVR) für einen Atmel
ATTiny.
Das Programm läuft, programmieren kann ich auch, aber:
Ich programmiere immer das Flash-Programm, dann wechsel ich in die Fuses
und stelle meine Fuses ein, programmiere die Fuses, dann wechsel ich in
Lockbits und stelle die Lockbits ein und programmiere die LBs.
Prinzipiell kein Problem, aber wenn ich mehrere Prozessoren
programmieren möchte, hält das halt lange auf. Außerdem wäre es
einfacher wenn ich nur das Production File Format beispilsweise per
email versenden müsste, damit mein Kumpel in 400 km Entfernung nur noch
diese aufspielen muss und nicht noch die ganzen settings machen muss,
die ich ihm zusätzlich zu dem Programm erklären oder darauf hinweisen
muss.
Das Problem äußert sich so:
Wenn ich die einstellungen alle mache (Flash/Fuses/LB) und programmiere
klicke ich anschließend unter Programm-Tab im Bereich ELF Production
File Format den Save Button (angehakte Kästchen: Flash, Fuses und
Lockbits). Alles wird gespeichert (Name und Ort kann ich mir auswählen).
Soweit so gut, programmieren klappt dann auch inkl. Fuses und LB, auch
mehrere hintereinander. Aber wenn ich das Programm schließe und
beispielsweise am nächsten Tag öffne, mir das elf-Format auswähle (das
zuvor gespeicherte) und dann programmiere kommt immer ein Fehler:
und ich muss beim ersten mal wieder alle Fuses und LBs einstellen.
Woran liegt das? Wie muss ich vorgehen?
Was mir aufgefallen ist:
Mein Flash-Code hat z.B. 5,5kB, aber mein gespeishertes elf-File (Flash,
Fuses und LB zuvor ausgewählt, programmiert und angehakt beim
Speichern) hat komischerweise nur noch 2,5kB.
Was ich möchte:
Eine File (ich dachte dafür gibt es das elf- Production File Format) das
ich versende oder am Tag X öffne und ohne in irgendwelchen Unterlagen
oder Code nachzusehen meine Controller inkl. Flash,Fuses und LB (von mir
aus später noch EEPROM) in einem Rutsch programmieren.
Man war das viel Text - Sorry
Hi
>Was mir aufgefallen ist:>Mein Flash-Code hat z.B. 5,5kB, aber mein gespeishertes elf-File (Flash,>Fuses und LB zuvor ausgewählt, programmiert und angehakt beim>Speichern) hat komischerweise nur noch 2,5kB.
Was ist daran komisch? Im Elf-File wird der Code binär gespeichert,
1Byte/Byte. Dein Hex-File ist Intel-Hex, also eine ASCII-Datei.
2Byte/Byte + ';'+ Recordtype + Bytes/Zeile + Adresse + CRC. Ein Hex-File
ist, über den Daumen gepeilt, etwa 2,5 mal größer als der Binärcode.
>Das würde mich auch interessieren
-Flash-File, EEPROM-File, Fuses und Lockbits einstellen
-bei 'Save from' alle Häckchen setzen
-'Save' drücken und Name der Datei eingeben, OK
und fertig (vor 5 Minuten getestet).
MfG Spess
spess53 schrieb:> -Flash-File, EEPROM-File, Fuses und Lockbits einstellen> -bei 'Save from' alle Häckchen setzen> -'Save' drücken und Name der Datei eingeben, OK>> und fertig (vor 5 Minuten getestet).>> MfG Spess
Ja schon, das funktioniert bei mir auch, aber wenn ich nach einem
erneuten Programmstart dieses elf-File wieder lade kommt immer die
erwähnte error meldung:
Basti schrieb:> Das Problem äußert sich so:> Wenn ich die einstellungen alle mache (Flash/Fuses/LB) und programmiere> klicke ich anschließend unter Programm-Tab im Bereich ELF Production> File Format den Save Button (angehakte Kästchen: Flash, Fuses und> Lockbits). Alles wird gespeichert (Name und Ort kann ich mir auswählen).> Soweit so gut, programmieren klappt dann auch inkl. Fuses und LB, auch> mehrere hintereinander. Aber wenn ich das Programm schließe und> beispielsweise am nächsten Tag öffne, mir das elf-Format auswähle (das> zuvor gespeicherte) und dann programmiere kommt immer ein Fehler:
Hi
>Ja schon, das funktioniert bei mir auch, aber wenn ich nach einem>erneuten Programmstart dieses elf-File wieder lade kommt immer die>erwähnte error meldung:
Ich habe jetzt noch mal alles durchgespielt (AVR-Studio geschlossen, neu
gestartet, anders Elf-File benutzt...)
Aber meine Meldungen sehen immer so aus:
Validating ELF input file.. OK!
Reading FLASH input..OK!
Reading EEPROM input..OK!
Reading FUSE input..OK!
Reading LOCKBIT input..OK!
Reading SIGNATURE input..OK!
Setting device parameters.. OK!
Entering programming mode.. OK!
Erasing device.. OK!
Reading signature from device .. 0x1E, 0x96, 0x0A .. OK!
ELF signature matches selected device .. OK
Signature read matches ELF stored signature .. OK
Programming FLASH .. OK!
Programming EEPROM .. OK!
Writing fuses address 0 to 2.. 0xFF, 0x99, 0xFE .. OK!
Writing lockbits .. 0xFF .. OK!
Leaving programming mode.. OK!
Das Ganze mit einem ATMega644P auf einem (richtigen) STK500. Bisher
hatte ich da nie Probleme.
MfG Spess
Also ich habe hier ein Original Atmel STK500 und es funktioniert nicht!
Aber nach deinem Hinweis habe ich mal ein STK600 angeschlossen und hier
funktioniert es einwandfrei!
Gibts da eine Erklärung für?
spess53 schrieb:> Was ist daran komisch? Im Elf-File wird der Code binär gespeichert,> 1Byte/Byte. Dein Hex-File ist Intel-Hex, also eine ASCII-Datei.> 2Byte/Byte + ';'+ Recordtype + Bytes/Zeile + Adresse + CRC. Ein Hex-File> ist, über den Daumen gepeilt, etwa 2,5 mal größer als der Binärcode.
Vielen Dank Spess für deine Erklärung, das war mir so nicht bewusst.
btw: Welchen Hex-Code Editor/Leser benutzt ihr? Ich habe hier nur
Programmers Notepad2, und die üblichen Verdächtigen WordPad,usw. Damit
geht es nicht.