STM32L152: EEPROM-Inhalt erst nach Debug-Session (BlackMagic Probe) auslesbar

Gast #6580361
Lesenswert?

Ich habe ein Programm auf einem STM32L1 am Laufen, das ein paar 
Variablen im EEPROM speichert. Um das Speichern zu überprüfen sehe ich 
mir den EEPROM-Inhalt während einer Debug-Session an und stelle fest, 
dass sich die Werte wie erwartet ändern.

Dann beende ich das Debugging, mache die Spannungsversorgung (USB) aus 
und wieder an, starte eine Debug-Session und schaue mir den 
EEPROM-Inhalt erneut an, bevor der uC wirklich losläuft (Breakpoint bei 
main). Die Werte von vorhin stehen noch immer im EEPROM. Lasse ich den 
uC jetzt loslaufen, werden die Werte richtig ausgelesen.

Läuft der STM32 jedoch ohne kurzes Debugging los, liest er immer nur 0 
aus dem EEPROM aus.

Zum Debuggen benutze ich eine Blackmagic Probe mit der neusten Firmware. 
Führe ich damit folgende Schritte durch, läuft es anschließend ebenfalls 
wie erwartet:
1
arm-none-eabi-gdb
2
GNU gdb (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 8.0.50.20171128-git
3
(gdb) tar ext /dev/ttyACM0
4
Remote debugging using /dev/ttyACM0
5
(gdb) mon s
6
Target voltage: 3.3V
7
Available Targets:
8
No. Att Driver
9
 1      STM32L1x M3
10
(gdb) att 1
11
Attaching to Remote target
12
warning: No executable has been specified and target does not support
13
determining executable automatically.  Try using the "file" command.
14
0x08004fb0 in ?? ()
15
(gdb) r
16
The program being debugged has been started already.
17
Start it from the beginning? (y or n) y
18
Starting program:  
19
warning: No executable has been specified and target does not support
20
determining executable automatically.  Try using the "file" command.
21
^C
22
Program received signal SIGINT, Interrupt.
23
0x08002c1e in ?? ()
24
(gdb) quit
25
A debugging session is active.
26

27
        Inferior 1 [Remote target] will be killed.
28

29
Quit anyway? (y or n) y
Beitrag #6581985 wurde von einem Moderator gelöscht.

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