Forum: Mikrocontroller und Digitale Elektronik ATmega1284p: Spontane Änderung von lock bits


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tycho B. (asellus)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo,

ich habe auf einem 1284p einen Bootloader, der AES256-verschlüsselte 
Firmware flasht. Dabei ist BOOTRST und JTAG auf on, On-Chip Debug 
Enabled und ISP sind deaktiviert.
Damit nichts mehr ausgelesen werden kann, stelle ich

"LPM and SPM prohibited in Boot Section"
"No lock on SPM and LPM in Application Section"
"Further programming and verification disabled"

ein.
Das funktioniert auch alles und die Firmare läuft. Mehrere Geräte werden 
aktiv in Messanordnungen eingesetzt. Allerdings bekomme ich ein mal im 
halben Jahr ein Gerät zurück, welches den Bootloader zwar startet, 
dieser aber bei der CRC-Prüfung der Firmware einen Fehler ausspuckt. 
Wenn ich die lock bits auslese, dann steht da

"LPM and SPM prohibited in Boot Section"
LPM and SPM prohibited in Application Section
"Further programming and verification disabled"

Wie ist das möglich? Ich hätte die lock bits so gar nicht setzen können, 
denn dann kann man die Firmware gar nicht mehr flashen und das Gerät 
hätte gar nicht funktioniert. D.h. im Einsatz haben sich die lock bits 
verändert, oder?

von Peter D. (peda)


Bewertung
2 lesenswert
nicht lesenswert
Die Lockbits können vom Bootloader aus gesetzt werden.
Ist das BOR enabled?

"Flash corruption can easily be avoided by following these design 
recommendations (one is sufficient):
1. If there is no need for a Boot Loader update in the system, program 
the Boot Loader Lock bits to prevent any Boot Loader software updates.
2. Keep the AVR RESET active (low) during periods of insufficient power 
supply voltage. This can be done by enabling the internal Brown-out 
Detector (BOD) if the operating voltage matches the detection level. If 
not, an external low VCC reset protection circuit can be used. If a 
reset occurs while a write operation is in progress, the write operation 
will be completed provided that the power supply voltage is sufficient.
3. Keep the AVR core in Power-down sleep mode during periods of low VCC. 
This will prevent the CPU from attempting to decode and execute 
instructions, effectively protecting the SPMCSR Register and thus the 
Flash from unintentional writes."

von Tycho B. (asellus)


Bewertung
0 lesenswert
nicht lesenswert
Brown-out detection ist deaktiviert

Extended: 0xFF
High: 0xB0
Low: 0xFF

Punkt 1. habe ich implementiert mit "LPM and SPM prohibited in Boot 
Section"

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Tycho B. schrieb:
> Brown-out detection ist deaktiviert

Dann ist ja der Schuldige gefunden.

von Tycho B. (asellus)


Bewertung
0 lesenswert
nicht lesenswert
Super, danke!
Diese Problematik war mir gar nicht bewusst. Ich merke auch, dass der 
Eingangskondensator relativ groß ist. Nach Strom-Aus dauert es knapp 2 
Sekunden, bis LCD erlischt. D.h. der Spannungsabfall dauert relatv 
lange. Vielleicht liegt es wirklich daran.
Werde nun BOD aktivieren, mal sehen ob es hilft)

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]
  • [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.