Flash-Speicher nach ein- und ausschalten von der Spannungsversorgung nicht mehr da

OP #4519628
Lesenswert?

Hallo,

wie oben schon beschrieben habe ich ein Problem beim laden meines 
Programms auf den Flash-Speicher.
Wenn ich meinen Code auf den Flash-Speicher laden will und die 
Spannungsversorgung dann aus- und wieder einschalte, ist nichts da.
Wenn ich jedoch den Debuggermodus einschalte, Breakpoints setze und dann 
das Programm laufen lasse, funktioniert es ganz normal. Es sei denn ich 
schalte die Spannungsversorgung wieder aus und ein.

Hat jemand eine Idee woran dies liegt?

HW: STM32F10x
IDE: µVision 5
Gast #4525290
Lesenswert?

Manche Speicher reagieren empfindlich auf Lesezugriffe während die 
Spannungsversorgung instabil ist.

Bei dem internen EEPROM von AVR's (nicht den Programmspeicher) hatte ich 
das mal, und beim EEPROM eines Ethernet Controllers.

Probiere mal, die Brown-Out Erkennung einzuschalten (falls vorhanden) 
und schalte einen 22µF Kondensator an den Ausgang des Spannungsreglers, 
falls da zur Zeit nur sehr kleine Kapazitäten dran hängen.
OP #4525317
Lesenswert?

Ja der Flash ist wirklich leer. Hab den auch schon mehrmals vorher 
händisch gelöscht bevor ich das Programm neu lade. Verify Code mache ich 
natürlich auch immer.

Und zu Stefan Us: ich weiß nicht wie das mit der Brown-Out Erkennung 
gemeint ist. Ich hab 12 V angelegt, heißt das ich muss die 
Spannungsversorgung jetzt auf das Minimum runterschalten?
Gast #4525335
Lesenswert?

Schau mal in deine Flash- und Debugeinstellungen, evtl arbeitest du nur 
aufm RAM. Also Dein Programm wird in RAM kopiert und dort auch 
ausgeführt ( die STM32er können das ) und nachm Spannungsrest ist 
natürlich alles leer.
Kannst ja mal wenn Du das debuggen gestartet hast, das Memorywatch 
Fenster aufmachen und dir die Speicherbereiche für RAM und Flash 
anschauen.

Hans
OP #4525347
Lesenswert?

Tut mir leid TestX, aber den Schaltplan kann ich nicht zeigen der ist 
Firmenintern.

Zu Hans:
Ich hatte den Bereich für Read/Only für IROM1 ab der Startadresse 
0x8000000 festgelegt, mit der Größe 0x100000.
Und den Bereich für Read/Write auch für IROM1 ab der Startadresse 
0x20000000
mit der Größe 0x18000.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren