Forum: Mikrocontroller und Digitale Elektronik AVR LockBits wärend Laufzeit lesen


von Alex W. (a20q90)


Lesenswert?

Hi,

ich suche nach einer Möglichkeit die LockBits des AVR wärend der 
laufzeit abzufragen! Hab nichts gefunden das mir weiterhilft!

Hat jemand eine Assembler-Zeile bzw einen Bascom-Schnipsel für mich?

Grüße
Alex

von Peter D. (peda)


Lesenswert?

Alex W. wrote:
> ich suche nach einer Möglichkeit die LockBits des AVR ...

Falls Du es noch nicht gemerkt haben solltest, Atmel stellt nicht nur 
einen AVR her.

Z.B. der ATtiny26 ist ein AVR und bei dem kann man die Lockbits nur mit 
einem Programmer auslesen.


Peter

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter Dannegger wrote:

> Z.B. der ATtiny26 ist ein AVR und bei dem kann man die Lockbits nur mit
> einem Programmer auslesen.

...während sein Nachfolger ATtiny261 tatsächlich in der Lage ist,
sie aus dem Programm heraus zu lesen.

von Skua (Gast)


Lesenswert?

Aber wozu soll das gut sein?

von Alex W. (a20q90)


Lesenswert?

Ich würde es für ATMega8, ATMega32 und ATMega128 brauchen!

Laut Datasheet kann man die LockBits LB1 und LB2 auslesen, aber ich hab 
keine Ahnung wie!

von Justus S. (jussa)


Lesenswert?

Alex W. wrote:
> Ich würde es für ATMega8, ATMega32 und ATMega128 brauchen!
>
> Laut Datasheet kann man die LockBits LB1 und LB2 auslesen, aber ich hab
> keine Ahnung wie!

für den Mega32, Zitat aus Datenblatt:

It is possible to read both the Fuse and Lock bits from software. To 
read the Lock bits, load the Z-pointer with $0001 and set the BLBSET and 
SPMEN bits in SPMCR. When an LPM instruction is executed within three 
CPU cycles after the BLBSET and SPMEN bits are set in SPMCR, the value 
of the Lock bits will be loaded in the destination register. The BLBSET 
and SPMEN bits will auto-clear upon completion of reading the Lock bits 
or if no LPM instruction is executed within three CPU cycles or no SPM 
instruction is executed within four CPU cycles. When BLBSET and SPMEN 
are cleared, LPM will work as described in the Instruction set Manual.

sowas meinst du doch?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Alex W. wrote:
> Ich würde es für ATMega8, ATMega32 und ATMega128 brauchen!

Die können es alle.

> Laut Datasheet kann man die LockBits LB1 und LB2 auslesen, aber ich hab
> keine Ahnung wie!

Steht doch im Datenblatt, unter "Self-Programming the Flash" ->
"Reading the Fuse and Lock Bits from Software".  Was genau verstehst
du daran nicht?

von Alex W. (a20q90)


Lesenswert?

Justus Skorps wrote:
> Alex W. wrote:
>> Ich würde es für ATMega8, ATMega32 und ATMega128 brauchen!
>>
>> Laut Datasheet kann man die LockBits LB1 und LB2 auslesen, aber ich hab
>> keine Ahnung wie!
>
> für den Mega32, Zitat aus Datenblatt:
>
> It is possible to read both the Fuse and Lock bits from software. To
> ...
>
> sowas meinst du doch?

Genau! Nur muss ich ja diesen z-Pointer in ein Register laden (glaub ich 
zumindest) um ihn zu vergleichen mit ist/soll! Nur habe ich keine Ahnung 
wie der ASM-Befehl dazu heist (ich glaub nicht das Bascom einen Befehl 
direkt dafür hat) und hab deshalb nach nem codeschnipsel in asm gefragt.

von fast so (Gast)


Lesenswert?

ASM ist etwas mehr als ein Codeschnipsel. So hat's keinen Sinn. Und ASM 
mit ner anderen Sprache mischen ist auch so eine Sache. Dazu sollte man 
das Manula zu dieser Sprache konsultieren. Nennt sich Inline Assembler. 
Zuerst sollte man sich allerding das ASM Instruction Code Manual der AVR 
zufuehren. Es sit unter den Dokumenten zu finden, nicht unter 
Datenblaettern.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wenn du nicht einmal weißt, was der Z-Zeiger bei einem AVR ist, dann
bist du offenbar noch nicht einmal an der Beschreibung des CPU-Kerns,
die sich in jedem Datenblatt befindet, vorbei gekommen.  Damit streite
ich dir jegliche Fähigkeiten ab, das Teil erfolgreich in Assembler
programmieren zu können.

Willst du das Teil mit AVR-GCC in C progammieren?  Dann sieh dir
bitte die Doku zu <avr/boot.h> an:

http://www.nongnu.org/avr-libc/user-manual/group__avr__boot.html

dort insbesondere die Funktion boot_lock_fuse_bits_get().

von Alex W. (a20q90)


Lesenswert?

eigendlich suche ich in bascom nur nach ner möglichkeit abzufragen ob 
die lockbits so gesetzt sind wie ich das will, ohne mich durch ein 
haufen daten wühlen zu müssen.

von Εrnst B. (ernst)


Lesenswert?

Alex W. wrote:
> eigendlich suche ich in bascom nur nach ner möglichkeit abzufragen ob
> die lockbits so gesetzt sind wie ich das will, ohne mich durch ein
> haufen daten wühlen zu müssen.

Dann frag doch bei Bascom direkt nach, dort im Forum, als 
Feature-Request o.Ä..
Was ich sonst so von Bascom gelesen hab, sind die recht fix neue 
Funktionen/Libraries einzubauen, wenn Sie gebraucht werden.

von Peter D. (peda)


Lesenswert?

Müssen eigentlich die Lock-/Fusebits auch aus der Bootsektion heraus 
gelesen werden oder geht das von überall?


Peter

von Alex W. (a20q90)


Lesenswert?

Peter Dannegger wrote:
> Müssen eigentlich die Lock-/Fusebits auch aus der Bootsektion heraus
> gelesen werden oder geht das von überall?
>
>
> Peter

Lesen überall, schreiben nur aus dem Bootbereich!

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.