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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist weil vor dem clearing-die Schutz-flag, und in der Mitte der Masse flash löschen, starten Sie den chip.
Die einzige Möglichkeit zur Wiederherstellung der chip ist es, die system-bootloader.
Kraft
boot0
pin1
und Kraftboot1
pin0
beim einschalten, bootloader starten, dann USB anschließen und den chip-Programm mit DFU-programmer.Herunterladen können Sie den DFU-Programmierer hier.
InformationsquelleAutor ali noory
Benutzte ich die Bibliothek wie folgt (es wurde nicht ohne
FLASH_Unlock();
):Keine Notwendigkeit für
NVIC_SystemReset();
.Überprüfung der Funktionalität gearbeitet am besten mit STM32 ST-LINK utility CLI für mich:
Nicht wirklich eine Lösung, aber ich hoffe, das spart jemand einige Zeit.
InformationsquelleAutor meiled