Hallo,
bisher brenne ich im AVR-Studio meine ATmegas auf folgende Weise:
Erst die Fuse-Bits, dann das Programm und dann die Lock-Bits.
Kann man diesen Prozess im AVR-Studio optimieren und alle drei Schritte
voreinstellen und dann in einem Arbeitsgang ausführen/brennen?
HaraldDräger schrieb:> Hallo,>> bisher brenne ich im AVR-Studio meine ATmegas auf folgende Weise:>> Erst die Fuse-Bits, dann das Programm und dann die Lock-Bits.>> Kann man diesen Prozess im AVR-Studio optimieren und alle drei Schritte> voreinstellen und dann in einem Arbeitsgang ausführen/brennen?
Ja, indem man alles (auch die Fuses und Lockbits) mit in den Quelltext
schreibt. Und dann brennt man nicht das Hex-File, sondern wählt das
*.elf-File aus. Dort ist nach der Compilierung alles enthalten.
Und wenn du noch einen Schritt weiter gehen willst, gehst du nicht über
den Brenn-Dialog, sondern suchst in der Symbolleiste einen kleinen
grünen Pfeil, und der heißt "Start without debugging (CTRL-ALT-F5)"
Damit brauchst du nur noch einen einzigen Klick für das Brennen.
Super, Danke für die schnelle Antwort und die Informationen!
npn schrieb:> Ja, indem man alles (auch die Fuses und Lockbits) mit in den Quelltext> schreibt.
In welcher Form kann man die Fuses und Lockbits in den Quelltext mit
aufnehmen (oder wo kann man das nachgucken)?
HaraldDräger schrieb:> Super, Danke für die schnelle Antwort und die Informationen!>> npn schrieb:>> Ja, indem man alles (auch die Fuses und Lockbits) mit in den Quelltext>> schreibt.>> In welcher Form kann man die Fuses und Lockbits in den Quelltext mit> aufnehmen (oder wo kann man das nachgucken)?
Du schreibst einfach in den Quelltext (main.c) die Werte
folgendermaßen rein:
FUSES=
{
.low = 0xE2,
.high = 0xD7,
.extended = 0xF9,
};
LOCKBITS = (0xFC);
Die einzelnen Werte mußt du auch nicht mit irgendwelchen
Fuse-Calculatoren berechnen, die auch noch eventuell die Bitwerte
invertiert ausgeben.
Stell einfach im Programmierdialog unter Fuses die entsprechenden
Auswahlfelder ein (BOOTSZ, BOOTRST usw...) und darunter siehst du dann
die Inhalte der "Fuse Register". Diese Werte trägst du dann in deinen
Quelltext ein. Genau das gleiche bei den Lockbits. In diesem Beispiel
hat "0xFC" beim ATMega88 die Bedeutung "PROG_VER_DISABLED".
Das ist schon alles. Aber denk dran, im *.hex stehen diese Werte nicht
drin, nur im *.elf!
Super, vielen herzlichen Dank!!!!!!
Werde es gleich ausprobieren.
npn schrieb:> Aber denk dran, im *.hex stehen diese Werte nicht> drin, nur im *.elf!
Ja, werde aufpassen, Danke für den Hinweis!
HaraldDräger schrieb:> Super, vielen herzlichen Dank!!!!!!> Werde es gleich ausprobieren.>> npn schrieb:>> Aber denk dran, im *.hex stehen diese Werte nicht>> drin, nur im *.elf!>> Ja, werde aufpassen, Danke für den Hinweis!
Und nicht vergessen, im Programmierdialog die Häkchen für Fuses und
Lockbits zu setzen. Mußt du aber nur einmal am Anfang machen. Wenn du
das Projekt schließt und später wieder öffnest kannst du gleich loslegen
mit:
- Quelltext ändern
- kleinen grünen Pfeil drücken
(wenn der Quelltext geändert wurde, wird automatisch
vor dem Programmieren das Projekt neu übersetzt,
sonst nicht)
- fertig!
HaraldDräger schrieb:> Supi, Danke, funktioniert prima - bin begeistert!
Freut mich, daß es klappt :-)
>> Kann man auch noch den Controllertyp in den Quelltext übernehmen?
Da bin ich im Augenblick überfragt.
npn schrieb:>> Kann man auch noch den Controllertyp in den Quelltext übernehmen?> Da bin ich im Augenblick überfragt.
Ist auch nicht so wichtig, hätte mich einfach interessiert.
Noch mal vielen Dank für deine Hilfe!!!
HaraldDräger schrieb:> npn schrieb:>>> Kann man auch noch den Controllertyp in den Quelltext übernehmen?>> Da bin ich im Augenblick überfragt.>> Ist auch nicht so wichtig, hätte mich einfach interessiert.
Den Controllertyp stellst du ja sowieso in den Projekt-Einstellungen
ein, insofern ist das Einfügen in den Quelltext auch nicht nötig.
>> Noch mal vielen Dank für deine Hilfe!!!
Gerne doch! :-)