STM32F2 Entfernung von readout-Schutz

Den STM32F2 micro-controller hat build-in-Funktionen zu verhindern, Auslesen der code für die Anwendung mit einem debug-interface. Es funktioniert gut und geschieht ganz einfach durch die Konfiguration der lese-Schutz(RDP) - Ebene zu '1' (!0xAA || !0xCC) or '2' (0xCC which is irreversible). Außer zu versuchen, es zu deaktivieren ist, wo ich laufen in Probleme.

Das erwartete Verhalten, wenn die RDP-Ebene abgesenkt wird und wieder zurück auf 0:

  • Der chip führt einen Massenspeicher in flash-erase.
  • Gefolgt von den clearing-Schutz-flag.
  • System-reset

Außer nach einem power-Zyklus der flash wurde erfolgreich gelöscht, aber der Schutz-flag bleibt auf der Ebene '1' (0x55) halten die debug-Schnittstelle ist deaktiviert. Und damit verhindern, dass mir beim schreiben einer neuen Anwendung code. Es ist möglich rumfummeln mit dem debugger und erzwingen Sie das flag auf der Ebene 0 (0xAA) manuell, wenn..

Gibt es jemand, der hatte das gleiche oder ähnliche Probleme mit der STM32F2xx Serie, die mir helfen können? Ich bin mit der STM32 standard-Peripherie-Treiber für die Programmierung der flash.

Aktivieren

//Enable read out protection
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_1);
FLASH_OB_Launch();
FLASH_OB_Lock();

//Restart platform
NVIC_SystemReset();

Deaktivieren

//Disable read out protection
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_0);
FLASH_OB_Launch();
FLASH_OB_Lock();

//Restart platform
NVIC_SystemReset();

InformationsquelleAutor Roy van Dam | 2014-02-04

Schreibe einen Kommentar