AVR-Studio - Brennvorgang vereinfachen

Gast #3693042
Lesenswert?

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?
Gast #3693050
Lesenswert?

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.
Gast #3693095
Lesenswert?

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!
Gast #3693126
Lesenswert?

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!
Gast #3693321
Lesenswert?

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! :-)

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