SAMC20 Security Bit / User Row / NVMCTRL

OP #7391608
Lesenswert?

Hallo und guten Morgen, ich habe folgendes Problem und hoffe ihr könnt mir dabei helfen: Ich speichere Paramter in der User-Row und andere Parameter in der RWWEE Sektion, dies hat soweit auch funktioniert. Nachdem ich aber das Security-Bit gesetzt habe, scheint dies nicht mehr zu funktionieren. Kennt jemand dieses Problem oder kennt jemand den Controller gut genug um mir auf die Sprünge zu helfen, was das Problem sein kann? Was genau bewirkt das Security-Bit? Ich dachte, da ich aus der ATmega-Welt komme, es wird nur der Zugriff von außen gesperrt. Gibt es beim Schreiben der User-Row und bei gesetztem Security-Bit etwas spezielles zu beachten? Kann oder muss vor dem Schreiben der Bereich freigegeben werden?

Herzlichen Dank, Simon

OP #7392434
Lesenswert?

Kaj G. schrieb:

Simon G. schrieb:

Was genau bewirkt das Security-Bit?

Das steht ausführlich im Datenblatt. Brauchst nur reingucken.

Das hatte ich schon gemacht, und da steht unter anderem folgendes:

Security Bit The security bit allows the entire chip to be locked from external access for code security. The security bit can be written by a dedicated command, Set Security Bit (SSB). Once set, the only way to clear the security bit is through a debugger Chip Erase command. After issuing the SSB command, the PROGE error bit can be checked. In order to increase the security level it is recommended to enable the internal BODVDD when the security bit is set.

Das würde mich in meiner Annahme über die Funktion bekräftigen, aber widerspricht meiner Erfahrung, dass ich bei gesetztem Bit die User-Row im Betrieb nicht schreiben kann.

Im Kapitel NVMCTRL steht folgendes: 0x05 EAR Erase Auxiliary Row - Erases the auxiliary row addressed by the ADDR register. This command can be given only when the Security bit is not set and only to the User Configuration Row. 0x06 WAP Write Auxiliary Page - Writes the contents of the page buffer to the page addressed by the ADDR register. This command can be given only when the Security bit is not set and only to the User Configuration Row.

Dies würde die Aussage bekräftigen, dass ein schreiben der User-Row bei gesetztem Security-Bit prinzipiell nicht möglich ist.

Mein Bootloader, der aber im Grunde nichts anderes macht als das Hauptprogramm kann aber, auch bei gesetztem Bit, die User-Row beschreiben.

Beim Debugen ist mir noch aufgefallen, dass sich die Bits 16 bis 23 des ADDR Registers des NVMCTRL -Moduls nicht schreiben lassen.

Hat jemand eine Erklärung dafür?

Gruß, Simon

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