Forum: Mikrocontroller und Digitale Elektronik Write Protection STM32F105RC


von groma (Gast)


Lesenswert?

Hallo,

Ich möchte gerne den bereich meines Bootloaders im Flash mit einer 
Writeprotection versehen.

Laut Datenblatt 
http://www.st.com/web/en/resource/technical/document/programming_manual/CD00283419.pdf 
ist das auch gar nicht so kompliziert, da ja auch bereits in der 
Standardbibliothek bereits alles vorprogrammiert ist.

Mein Code:
1
if(FLASH_GetWriteProtectionOptionByte() != 0xFFFFFF00) {
2
    FLASH_EnableWriteProtection(0x000000FF);
3
    NVIC_SystemReset();
4
}

Mit der Writeprotection sollen Page0-15 gesperrt werden (0x000000FF). Im 
vergleich muss diese invertiert werden (0xFFFFFF00).

Meines erachtens dürfte nun beim ersten start die Writeprotection 
enabled werden und nach dem Reset müsste sie bereits aktiv sein.
Leider ist es nun so das die Writeprotection nicht gespeichert wird und 
ich immer 0xFFFFFFFF zurückbeckomme (keine Writeprotection)

Kann mir jemand helfen?
Was mache ich falsch?

Danke im Voraus!

von groma (Gast)


Lesenswert?

Für alle die vielleicht auch einmal an dieses Problem stoßen, hier die 
Lösung:
1
  FLASH_Unlock();
2
  if(FLASH_GetWriteProtectionOptionByte() != (0xFFFFFF00)) {
3
    FLASH_EraseOptionBytes();
4
    FLASH_EnableWriteProtection(0x000000FF);
5
    NVIC_SystemReset();
6
  }
7
  FLASH_Lock();

Da sucht man sich stunden den Ar*** ab und wenn man es in ein Forum 
postet findet man gleich den Fehler.

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.