Forum: Mikrocontroller und Digitale Elektronik Debugging - Problem STM32 - Eclipse


von Daniel S. (acetonperoxid)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche OpenOCD  Eclipse  sourcery zum Laufen zu bringen. Das 
Programm scheint irgendwie im Reset_Handler hängen zu bleiben. Hier ein 
Ausschnitt aus dem Diassembly:
1
197         for (p= (char *) &_ebss; p< (char *) &_estack; p++) {
2
08002f6a:   movw r3, #900   ; 0x384
3
08002f6e:   movt r3, #8192  ; 0x2000
4
08002f72:   str r3, [r7, #4]
5
08002f74:   b.n 0x8002f86 <Reset_Handler+34>
6
198           *p = 0;
7
08002f76:   ldr r3, [r7, #4]
8
08002f78:   mov.w r2, #0
9
08002f7c:   strb r2, [r3, #0]
10
197         for (p= (char *) &_ebss; p< (char *) &_estack; p++) {
11
08002f7e:   ldr r3, [r7, #4]
12
08002f80:   add.w r3, r3, #1
13
08002f84:   str r3, [r7, #4]
14
08002f86:   ldr r2, [r7, #4]
15
08002f88:   movw r3, #20480 ; 0x5000
16
08002f8c:   movt r3, #8192  ; 0x2000
17
08002f90:   cmp r2, r3
18
08002f92:   bcc.n 0x8002f76 <Reset_Handler+18>
19
202          __Init_Data();
20
08002f94:   bl 0x8002fa4 <__Init_Data>
21
205         main();
Er läuft von 08002f6a bis 08002f74 und springt dann in die Zeile:
1
08002f86:   ldr r2, [r7, #4]
 Dort bleibt er bis in alle Ewigkeit. Wie kann es sein, dass der PC 
immer auf der selben Instruction hängen bleibt?
Meine Theorie ist, dass ein Interrupt ausgelöst wird, und der Debugger 
den Sprung in den Interrupt nicht mitbekommt. Ich habe aber keine Ahnung 
wie ich das überprüfen kann. Gibt es noch andere Dinge, die ein solches 
Verhalten verursachen könnten?

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.