Forum: Mikrocontroller und Digitale Elektronik Flash+Fuses+Lockbits in *.elf funktioniert nicht


von Basti (Gast)


Lesenswert?

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:
1
Validating ELF input file.. Could not read ELF input file .....
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

von Basti (Gast)


Lesenswert?

Achso - ich arbeite noch mit dem AVR Studio 4.18

von Wolle (Gast)


Lesenswert?

Das würde mich auch interessieren

von spess53 (Gast)


Lesenswert?

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

von Basti (Gast)


Lesenswert?

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:
1
Validating ELF input file.. Could not read ELF input file .....
>und ich muss beim ersten mal wieder alle Fuses und LBs einstellen.

von spess53 (Gast)


Lesenswert?

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

von Basti (Gast)


Lesenswert?

Was heißt richtiges STK500?

von spess53 (Gast)


Angehängte Dateien:

Lesenswert?

Hi

>Was heißt richtiges STK500?

Das original STK500 von ATmel. Nicht irgend ein China-Clone.

MfG Spess

von Basti (Gast)


Lesenswert?

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?

von Basti (Gast)


Lesenswert?

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.

von spess53 (Gast)


Lesenswert?

Hi

>Welchen Hex-Code Editor/Leser

Zum Ansehen: Norton Commander.

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.