Forum: Mikrocontroller und Digitale Elektronik SAM_D5x/E5x Security Bit


von Alex (haidanai)


Lesenswert?

Hallo,

gibt es in der Studio 7 Entwicklungsumgebung eine Möglichkeit,
gleich das Security Bit mit dem Programmiervorgang zu setzen?
Kann man das irgend wie mit Tools-Device Programming->FUSES?
Oder ist es die einzige Möglichkeit in den Programmcode diesen 
Setzbefehl
einzubauen?
Gibt es die Funktion zum Setzen schon fertig (hri_NVMCTRL) ?

von Alex (haidanai)


Lesenswert?

Hallo,
hat auch niemand den Ausleseschutz des SAMD21 benutzt und das Security 
Bit gesetzt?
Wie habt ihr das gemacht?

von Stephan D. (50plus)


Lesenswert?

Hi Alex,
Du bist hier im STM-Land ,)

Tatsächlich habe ich auch keine Erfahrung mit dem SAMDx (wir nutzen 
verschiedene SAM4x-Baureihen).
1.) ich kann mir gut vorstellen, dass das setzen der Bits von Studio 7 
NICHT funktioniert (Studio 7 nutzen wir aber nicht), da der Vorgang doch 
einigermassen komplex ist (jedenfalls komplexer als beim z.B. AVR).
Hier (https://forum.arduino.cc/t/samd21-set-security-bit/910208) zwigt 
aber jemmand, wie das via JLink wohl doch klappt.

2.) 
https://microchip.my.site.com/s/article/SAMD20-SAMD21-Programming-the-fuses-from-application-code 
kennst Du?
Da ist der Vorgang ja haarklein aufgebröselt und Du kannst in Deine 
Funktion aufnehmen was Du brauchst...
Viele Grüße
Stephan

: Bearbeitet durch User
von Adam P. (adamap)


Lesenswert?

Hi Alex,

also mit "Tools -> Device Programming" sollte es doch möglich sein.

Hab das jetzt nur mal überflogen, aber entweder einzelne Regionen mit:
"Fuses -> USER_WORD_2.NVMCTRL_REGION_LOCKS"

oder mit "Security" den ganzen Chip (sieht für mich nach dem gleichen 
aus, habs aber nicht weiter verfolgt).

Falls du das Flashen und setzen der Lock Bits in einem Rutsch machen 
möchtest:
Du kannst dir eine Batch schreiben, die "atprogram.exe" nutzt.
Dann kannst alls hintereinander abhandeln
- chip löschen
- fw übertragen
- chip sperren

edit:
https://onlinedocs.microchip.com/pr/GUID-BEAFF546-6F18-4E6D-AA49-7F9E840C6289-en-US-4/index.html?GUID-B3F08EF6-37FA-4BB6-BF11-8F9CCC73BD16

: Bearbeitet durch User
von Adam P. (adamap)


Lesenswert?


von Alex (haidanai)


Lesenswert?

Hey, danke für deine schnelle Antwort und Hilfsbereitschaft.
Ja, es geht mir um den Firmwareschutz und nicht um Lock Bits.
Nach erneuter Suche, habe ich auf einmal gefunden, was ich gesucht habe.
Irgend wie hatte ich vor Ostern "Tomaten auf den Augen".
Für die "Nachwelt":
Zusätzlich zu  Adam P.'s Hinweis, die einfachste Möglichkeit ist...

Mit Tools->Device Programming->Security kann man dieses Bit setzen.

Sowohl beim SAMD21 als auch bei den SAMD/E5x.
Noch eine Möglichkeit ist mit Software, hier nur der Kern:
NVMCTRL.CTRLA= CMDEX | <SSB-Command>(0x45)

Dein Hinweis mit der Batch-Datei könnte bei der Serienfertigung 
interessant werden. Problem gelöst, Danke nochmal.

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.