Hallo,
wie in den anderen Beitragen auch schon zu lesen, beschäftige ich mich
seit ein paar Tagen mit dem Cortex-M3, genauer einem STM32F103RB auf dem
Olimex STM32-H103 zusammen mit dem Segger J-Link EDU.
Nun versuche ich mittels GDB zu debuggen (und zwar noch direkt in der
Konsole). Allerdings ignoriert er einfach meine Breakpoints. Er läuft
einfach die Main immer wieder durch (die LED blinkt).
Könnt ihr mir sagen warum?
Folgendes hab ich in meine Konsole getippt, der untere Teil ist im Log
vom Segger GDB-Server.
Gruß
Lasse
PS: Ja, das war den Tag über noch in GCC, aber ich hab's mal hierher
"verschoben", da das zwar die Binutils, aber nicht den GCC ansich
betrifft. Und im GCC antwortet keiner, vielleicht liegt's ja am falschen
Forum.. hoff
1 | C:\Projektpfad\Release>arm-none-eabi-gdb ausgabe.elf
|
2 | GNU gdb (Sourcery G++ Lite 2009q3-68) 6.8.50.20090630-cvs
|
3 | Copyright (C) 2009 Free Software Foundation, Inc.
|
4 | License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
5 | This is free software: you are free to change and redistribute it.
|
6 | There is NO WARRANTY, to the extent permitted by law. Type "show copying"
|
7 | and "show warranty" for details.
|
8 | This GDB was configured as "--host=i686-mingw32 --target=arm-none-eabi".
|
9 | For bug reporting instructions, please see:
|
10 | <https://support.codesourcery.com/GNUToolchain/>...
|
11 | (gdb) target remote localhost:2331
|
12 | Remote debugging using localhost:2331
|
13 | 0x00000000 in ?? ()
|
14 | (gdb) monitor speed auto
|
15 | Select auto JTAG speed (1000 kHz)
|
16 | (gdb) monitor flash device=stm32f103rb
|
17 | Select flash device: stm32f103rb
|
18 | (gdb) monitor flash breakpoints = 1
|
19 | Flash breakpoints enabled
|
20 | (gdb) monitor flash download = 1
|
21 | Flash download enabled
|
22 | (gdb) load
|
23 | Loading section .text, size 0x4148 lma 0x8000000
|
24 | Loading section .data, size 0x14 lma 0x8004148
|
25 | Start address 0x8000000, load size 16732
|
26 | Transfer rate: 466 KB/sec, 2788 bytes/write.
|
27 | (gdb) monitor reg r13 = (0x00000000)
|
28 | Writing register (SP = 0x00500020)
|
29 | (gdb) monitor reg pc = (0x00000004)
|
30 | Writing register (PC = 0x6D020008)
|
31 | (gdb) monitor reset
|
32 | Resetting target
|
33 | (gdb) break main
|
34 | Breakpoint 1 at 0x80001ca: file ../main.c, line 54.
|
35 | (gdb) continue
|
36 | Continuing.
|
Im GDB-Server von JLink steht dann:
1 | Connected to 127.0.0.1
|
2 | Reading all registers
|
3 | Read 4 bytes @ address 0x00000000 (Data = 0x00500020)
|
4 | Select auto JTAG speed (1000 kHz)
|
5 | Select flash device: stm32f103rb
|
6 | Flash breakpoints enabled
|
7 | Flash download enabled
|
8 | Downloading 4032 bytes @ address 0x08000000
|
9 | Downloading 4016 bytes @ address 0x08000FC0
|
10 | Downloading 4048 bytes @ address 0x08001F70
|
11 | Downloading 3984 bytes @ address 0x08002F40
|
12 | Downloading 632 bytes @ address 0x08003ED0
|
13 | Downloading 20 bytes @ address 0x08004148
|
14 | Writing register (PC = 0x00000008)
|
15 | Writing register (SP = 0x00500020)
|
16 | Writing register (PC = 0x6D020008)
|
17 | Resetting target
|
18 | Read 2 bytes @ address 0x080001CA (Data = 0x0121)
|
19 | Setting breakpoint @ address 0x080001CA, Size = 2, BPHandle = 0x0009
|
20 | Starting target CPU...
|