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?
Danke schon mal
@abc
laut Doku zu fuse.h, soll fuse.h nicht direkt eingebunden werden
@hp-freund
mit dem Tool sehe ich die Fuses so wie sie geschrieben werden sollen.
Beim Auslesen stehen aber immer noch die alten Werte im Controller.
Anscheinend werden sie nicht geflasht?
Hier mal ein Beispiel für den ATmega88, was funktioniert.
Kein fuses.h eingebunden und auch nix anderes. Einfach diese Zeilen an
den Anfang der main.c schreiben:
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
@hp-freund
soweit ich weiß sind in einem .hex-File keine Fuse-Bits enthalten,
deshalb...
@Chris
Funktioniert auch nicht :-(
Beim Auslesen stehen immer noch die alten Werte drin.
Muss ich evtl. irgendwo aktivieren, dass beim Flashen mit einem
.elf-File auch die Fusebits geschrieben werden sollen?
ich schrieb:> 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
Na sowas :)
*************************************+
Gibt es vielleicht eine "Fuses schreiben erlaubt" Einstellung im AVR
Studio?
Dieter M. schrieb:> Muss ich evtl. irgendwo aktivieren, dass beim Flashen mit einem> .elf-File auch die Fusebits geschrieben werden sollen?
ja im Programmierdialog ankreuzen ;)
Standardmäßig ist da nur Flash angekreuzt.
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.
hp-freund schrieb:> Na sowas :)
Verstehe ich nicht, sorry. Du hattest hex vorgeschlagen und ich habe
geschrieben, daß im hex-File keine Fuses drin sind. Die aber will der TO
haben.