fuses in .elf-File einbinden

Gast #3597690
Lesenswert?

Hallo Zusammen,

brauche etwas Hilfe:
ich habe einen Bootloader für einen ATmega328 programmiert und möchte 
ihn zusammen mit den zugehörigen Fuse- und Lock-Bits flashen.

Ich lese immer wieder, dass das mit Atmel Studio 6.1 mit einem .elf-File 
funktionieren soll. Tut es bei mir aber nicht :-(

Folgendes funktioniert nicht:

#include <avr/io.h>
1
__fuse_t __fuse __attribute__((section (".fuse"))) =
2
{0xFC,0xDA,0xF7};


und das auch nicht:
1
#include <avr/io.h>
2
FUSES = {0xFC, 0xDA, 0xB7};

Um das näher zuuntersuchen, habe ich jeweils 2x kompiliert, dabei 1x ein 
Fuse-Byte abgeändert. Die entstandenen .elf-Files habe ich miteinander 
verglichen -> Kein Unterschied (sagt zumindest compare von Notepad++)

Was muss ich noch beachten?
Gast #3597757
Lesenswert?

Hi,

bei mir funktioniert es mit folgendem Code (Atmel Studio 6.0):
1
//////////////////////////////////////////////////////////////////////////
2
// Fuse Einstellungen:
3

4
const char fusedata[] __attribute__ ((section (".fuse"))) =
5

6
    {0xF7, 0xD5, 0xF9};    // BOD 2,7V; EESAVE; ext. FS-Crystal;
7
              // Reihenfolge ist: (LOW, HIGH, EXTENDED)
8

9
const char lockbits[] __attribute__ ((section (".lockbits"))) = 
10

11
    {0xFC};    // Prog & verify disabled
12
    
13
    
14
//////////////////////////////////////////////////////////////////////////


lg
Chris
Gast #3597777
Lesenswert?

hp-freund schrieb:
> Wie ist es wenn Du eine hex erstellen lässt?
> Oder womit flasht das Atmel Studio 6.1?

In der hex stehen keine Fuses und Lockbits drin. Das eigentliche 
Programm Flashen geht mit der Hex schon, aber dem TO ging es um das 
Einbinden der Fuses, damit sie nicht immer von Hand eingestellt werden 
müssen beim Flashen. Deswegen die *.elf
Gast #3597789
Lesenswert?

Dieter M. schrieb:
> Muss ich evtl. irgendwo aktivieren, dass beim Flashen mit einem
> .elf-File auch die Fusebits geschrieben werden sollen?

Ja. Im Fenster "Device Programming" bei "Production file" stellst du 
oben erstmal den Pfad zum *.elf-File ein. Darunter sind dann Häkchen, 
die du setzen oder löschen kannst für Flash, EEPROM, Fuses, Lock bits.
Und je nach *.elf-File kann man nur die Haken setzen, die auch im *.elf 
enthalten sind, z.B. Flash, Fuses, Lockbits. Dann wäre EEPROM grau und 
nicht auswählbar.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren