www.mikrocontroller.net

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


Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber wozu soll das gut sein?

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: fast so (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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__...

dort insbesondere die Funktion boot_lock_fuse_bits_get().

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

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


Peter

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.