Forum: Mikrocontroller und Digitale Elektronik STM32F4 Read Protection


von O.S. (Gast)


Lesenswert?

Hallo!

Ich habe einen STM32F407 Controller und möchte gern den Ausleseschutz 
aktivieren (Level 1). Das funktioniert auch wunderbar wie im Reference 
Manual beschrieben. Mein Problem ist nun, dass mein Bootloader den Flash 
nicht löschen und neu beschreiben kann. Ich bekomme das Bit WRPRTERR 
gesetzt, also Write Protection.
Laut Reference Manual sollte das Schreiben in den Flash möglich sein, 
wenn JTAG / SWD nicht aktiv sind (habe den JLINK abgesteckt) und das 
Programm vom Flash startet und nicht vom RAM. Beides ist der Fall.
Hat jemand eine Idee was ich tun kann?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ein mal hatte ich den Chip mit Level 2 geschützt, dann durfte ich den 
runter löten und ersetzen.
Hingegen mit Level 1 kann ich mittels eigenem Bootloader den Chip 
beschreiben. Mit dem Bootloader aus der Firmware geht das, glaube ich, 
nicht mehr, da man mit dem den Flash auslesen könnte.

von O.S. (Gast)


Lesenswert?

Ich nutze einen selbst geschriebenen Bootloader. Da dieser aus dem Flash 
startet, gehe ich davon aus dass ich damit den Flash auch bearbeiten 
kann. Irgendwie funktioniert das aber nicht.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich habe keine "LockBlock" Bits genutzt.

Um ein Block zu beschreiben muss der erst mal gelöscht werden. Immer 
schön das Busy-Bit Abfragen dann schreibe ich immer 16-Bit weise rein. 
Wenn auf den nächsten Block geschrieben werden soll, dann lösche ich den 
erst.
Anhand dem PC Register erkenne ich den Überschreibschutz vom Bootloader 
(in welchem Block sich das aktuelle Programm momentan befindet).

Im Flash Programing Manual ist alles beschrieben, auch die genauen 
Abläufe wie das geht. Wenn das nicht tut, dann man in Errata von dem 
einen Chip schauen, nicht dass da doch noch was in dem Chip ist.

Ich habe schon Bootloader für einen F103 und F407 geschrieben.

von O.S. (Gast)


Lesenswert?

Naja ohne Ausleseschutz funktioniert der Bootloader ganz wunderbar. Nur 
wenn der aktiv ist, dann ist seltsamerweise auch die write protection 
aktiv, und ich kann nicht nachvollziehen warum. Im Errata habe ich 
nichts passendes gefunden. Und das Flash programming manual kenne ich, 
allerdings nur für den F1. Für den F4 habe ich sowas nicht gefunden.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

z.B. DM00023388, PM0081

von O.S. (Gast)


Lesenswert?

Vielen Dank!

Hatte eigentlich alles korrekt umgesetzt. Habe nun rausgefunden woran es 
lag. Habe beim löschen der Readprotectionbits
FLASH->OPTCR &= !(FLASH_OPTCR_RDP);
statt
FLASH->OPTCR &= ~(FLASH_OPTCR_RDP);
verwendet.. damit war das ganze Register genullt und damit auch die 
Write Protection Bits

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.