> > Can you point me where to get more info about single stepping ? It seems to
> me, that it is OpenOCD's weakness. Tomorrow I will hopefully get Lauterbach
> license to test this feature. But truth is that I can not do single stepping
> on
> my system with OpenOCD/gdb.
>
> Then you have something misconfigured. Single stepping and breakpoints
> definitely works. You could help yourself by describing the problem in
> more detail, like which Cortex-M3 you are using, which adapter, the
> configuration of OpenOCD, and the steps you take to determine if
> stepping works or not.
I am running CM3 core in Xilinx FPGA. I have external FLASH at 0x7000_0000. I
use Amontec JTAGKey Tiny.
I know that single stepping works in ICode memory region. I am however affected
by this feature of Cortex M3:
http://forums.arm.com/index.php?/topic/14005-debugging-cortex-m3-from-external-flash/
The question is, how single stepping is implemented in OpenOCD. Two files are
attached. One is 'stepi' in FLASH (hardfault) and one is 'stepi' in RAM
(works). I want to track whether 'stepi' is made with writing into NVIC DHCSR
register C_STEP bit ( DDI0337G page 10-4) or just by setting breakpoint (in
case of FLASH by setting HW breakpoint which ends with HardFault).
>From logs attached it seems to me that 'stepi' uses breakpoints instead DHCSR.
Hopefully now the situation is more clear.
Vaclav
Debug: 500 50265 gdb_server.c:2047 gdb_input_inner(): received packet:
'Pf=95020070'
Debug: 501 50265 gdb_server.c:1119 gdb_set_register_packet(): -
Debug: 502 50265 gdb_server.c:2047 gdb_input_inner(): received packet: 'g'
Debug: 503 50281 gdb_server.c:2047 gdb_input_inner(): received packet:
'm70000294,4'
Debug: 504 50281 gdb_server.c:1199 gdb_read_memory_packet(): addr: 0x70000294,
len: 0x00000004
Debug: 505 50281 target.c:1769 target_read_buffer(): reading buffer of 4 byte
at 0x70000294
Debug: 506 53125 gdb_server.c:2047 gdb_input_inner(): received packet: 's'
Debug: 507 53125 target.c:1299 target_call_event_callbacks(): target event 5
(gdb-start)
Debug: 508 53140 gdb_server.c:1359 gdb_step_continue_packet(): -
Debug: 509 53140 gdb_server.c:1374 gdb_step_continue_packet(): step
Debug: 510 53140 armv7m.c:144 armv7m_restore_context():
Debug: 511 53140 cortex_m.c:1523 cortex_m3_store_core_reg_u32(): write core reg
15 value 0x70000295
Debug: 512 53156 armv7m.c:252 armv7m_write_core_reg(): write core reg 15 value
0x70000295
Debug: 513 53156 target.c:1299 target_call_event_callbacks(): target event 2
(resumed)
Debug: 514 53156 cortex_m.c:1132 cortex_m3_set_breakpoint(): BPID: 1, Type: 1,
Address: 0x70000295 Length: 2 (set=1)
Debug: 515 53171 breakpoints.c:106 breakpoint_add_internal(): added software
breakpoint at 0x70000295 of length 0x00000002, (BPID:
1)
Debug: 516 53171 cortex_m.c:866 cortex_m3_step(): Starting core to serve
pending interrupts
Debug: 517 53687 cortex_m.c:1153 cortex_m3_unset_breakpoint(): BPID: 1, Type:
1, Address: 0x70000295 Length: 2 (set=1)
Debug: 518 53687 breakpoints.c:309 breakpoint_free(): free BPID: 1 --> 0
Debug: 519 53687 cortex_m.c:887 cortex_m3_step(): Interrupt handlers didn't
complete within time, leaving target running
Debug: 521 57906 gdb_server.c:2047 gdb_input_inner(): received packet: ''
Debug: 522 57921 cortex_m.c:597 cortex_m3_halt(): target->state: running
Debug: 523 57921 cortex_m.c:412 cortex_m3_debug_entry():
Debug: 524 57937 cortex_m.c:180 cortex_m3_clear_halt(): NVIC_DFSR 0x1
Debug: 525 57937 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 0 value 0xfd9
Debug: 526 57953 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 1 value 0x8001130
Debug: 527 57953 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 2 value 0x0
Debug: 528 57968 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 3 value 0x1000
Debug: 529 57968 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 4 value 0x8000070
Debug: 530 57984 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 5 value 0x18
Debug: 531 57984 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 6 value 0x8000070
Debug: 532 57999 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 7 value 0x801ff44
Debug: 533 57999 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 8 value 0x8001130
Debug: 534 58015 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 9 value 0x0
Debug: 535 58031 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 10 value 0xfd8
Debug: 536 58031 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 11 value 0x0
Debug: 537 58046 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 12 value 0x5
Debug: 538 58046 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 13 value 0x801ff44
Debug: 539 58062 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 14 value 0xfffffff9
Debug: 540 58062 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 15 value 0x7000033c
Debug: 541 58078 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 16 value 0x21000003
Debug: 542 58078 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 17 value 0x801ff44
Debug: 543 58093 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 18 value 0x0
Debug: 544 58093 cortex_m.c:1478 cortex_m3_load_core_reg_u32(): load from
special reg 19 value 0x0
Debug: 545 58109 cortex_m.c:1478 cortex_m3_load_core_reg_u32(): load from
special reg 20 value 0x0
Debug: 546 58109 cortex_m.c:1478 cortex_m3_load_core_reg_u32(): load from
special reg 21 value 0x0
Debug: 547 58124 cortex_m.c:1478 cortex_m3_load_core_reg_u32(): load from
special reg 22 value 0x0
Debug: 548 58124 cortex_m.c:397 cortex_m3_examine_exception_reason(): HardFault
SHCSR 0x0, SR 0x40000000, CFSR 0x400, AR 0xfffffff
f
Debug: 549 58140 cortex_m.c:484 cortex_m3_debug_entry(): entered debug state in
core mode: Handler at PC 0x7000033c, target->state
: halted
Debug: 550 58140 target.c:1299 target_call_event_callbacks(): target event 0
(gdb-halt)
Debug: 551 58140 target.c:1299 target_call_event_callbacks(): target event 1
(halted)
Debug: 552 58140 target.c:1299 target_call_event_callbacks(): target event 6
(gdb-end)
Debug: 553 58140 gdb_server.c:2047 gdb_input_inner(): received packet: 'g'
Debug: 554 58156 gdb_server.c:2047 gdb_input_inner(): received packet:
'm7000033c,4'
Debug: 555 58156 gdb_server.c:1199 gdb_read_memory_packet(): addr: 0x7000033c,
len: 0x00000004
Debug: 556 58156 target.c:1769 target_read_buffer(): reading buffer of 4 byte
at 0x7000033c
Debug: 434 28344 gdb_server.c:2047 gdb_input_inner(): received packet:
'Pf=95020074'
Debug: 435 28344 gdb_server.c:1119 gdb_set_register_packet(): -
Debug: 436 28359 gdb_server.c:2047 gdb_input_inner(): received packet: 'g'
Debug: 437 28359 gdb_server.c:2047 gdb_input_inner(): received packet:
'm74000294,4'
Debug: 438 28359 gdb_server.c:1199 gdb_read_memory_packet(): addr: 0x74000294,
len: 0x00000004
Debug: 439 28359 target.c:1769 target_read_buffer(): reading buffer of 4 byte
at 0x74000294
Debug: 448 38250 gdb_server.c:2047 gdb_input_inner(): received packet: 's'
Debug: 449 38265 target.c:1299 target_call_event_callbacks(): target event 5
(gdb-start)
Debug: 450 38265 gdb_server.c:1359 gdb_step_continue_packet(): -
Debug: 451 38265 gdb_server.c:1374 gdb_step_continue_packet(): step
Debug: 452 38265 armv7m.c:144 armv7m_restore_context():
Debug: 453 38281 cortex_m.c:1523 cortex_m3_store_core_reg_u32(): write core reg
15 value 0x74000295
Debug: 454 38281 armv7m.c:252 armv7m_write_core_reg(): write core reg 15 value
0x74000295
Debug: 455 38281 target.c:1299 target_call_event_callbacks(): target event 2
(resumed)
Debug: 456 38297 cortex_m.c:1132 cortex_m3_set_breakpoint(): BPID: 0, Type: 1,
Address: 0x74000295 Length: 2 (set=1)
Debug: 457 38297 breakpoints.c:106 breakpoint_add_internal(): added software
breakpoint at 0x74000295 of length 0x00000002, (BPID:
0)
Debug: 458 38297 cortex_m.c:866 cortex_m3_step(): Starting core to serve
pending interrupts
Debug: 459 38312 cortex_m.c:1153 cortex_m3_unset_breakpoint(): BPID: 0, Type:
1, Address: 0x74000295 Length: 2 (set=1)
Debug: 460 38312 breakpoints.c:309 breakpoint_free(): free BPID: 0 --> 0
Debug: 461 38328 cortex_m.c:920 cortex_m3_step(): target stepped dcb_dhcsr =
0x1030007 nvic_icsr = 0x0
Debug: 462 38328 cortex_m.c:412 cortex_m3_debug_entry():
Debug: 463 38343 cortex_m.c:180 cortex_m3_clear_halt(): NVIC_DFSR 0x3
Debug: 464 38343 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 0 value 0x0
Debug: 465 38359 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 1 value 0x0
Debug: 466 38359 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 2 value 0x0
Debug: 467 38375 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 3 value 0x0
Debug: 468 38375 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 4 value 0x0
Debug: 469 38390 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 5 value 0x0
Debug: 470 38406 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 6 value 0x0
Debug: 471 38406 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 7 value 0x0
Debug: 472 38422 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 8 value 0x0
Debug: 473 38422 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 9 value 0x0
Debug: 474 38437 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 10 value 0x0
Debug: 475 38437 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 11 value 0x0
Debug: 476 38453 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 12 value 0x0
Debug: 477 38453 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 13 value 0x801fff0
Debug: 478 38468 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 14 value 0xffffffff
Debug: 479 38468 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 15 value 0x74000296
Debug: 480 38484 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 16 value 0x1000000
Debug: 481 38484 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 17 value 0x801fff0
Debug: 482 38500 cortex_m.c:1447 cortex_m3_load_core_reg_u32(): load from core
reg 18 value 0x0
Debug: 483 38515 cortex_m.c:1478 cortex_m3_load_core_reg_u32(): load from
special reg 19 value 0x0
Debug: 484 38515 cortex_m.c:1478 cortex_m3_load_core_reg_u32(): load from
special reg 20 value 0x0
Debug: 485 38531 cortex_m.c:1478 cortex_m3_load_core_reg_u32(): load from
special reg 21 value 0x0
Debug: 486 38531 cortex_m.c:1478 cortex_m3_load_core_reg_u32(): load from
special reg 22 value 0x0
Debug: 487 38547 cortex_m.c:484 cortex_m3_debug_entry(): entered debug state in
core mode: Thread at PC 0x74000296, target->state:
halted
Debug: 488 38547 target.c:1299 target_call_event_callbacks(): target event 0
(gdb-halt)
Debug: 489 38547 target.c:1299 target_call_event_callbacks(): target event 1
(halted)
Debug: 490 38547 target.c:1299 target_call_event_callbacks(): target event 6
(gdb-end)
Debug: 491 38547 cortex_m.c:929 cortex_m3_step(): target stepped dcb_dhcsr =
0x30003 nvic_icsr = 0x0
Debug: 492 38562 gdb_server.c:2047 gdb_input_inner(): received packet: 'g'
Debug: 493 38562 gdb_server.c:2047 gdb_input_inner(): received packet:
'm74000296,4'
Debug: 494 38562 gdb_server.c:1199 gdb_read_memory_packet(): addr: 0x74000296,
len: 0x00000004
Debug: 495 38562 target.c:1769 target_read_buffer(): reading buffer of 4 byte
at 0x74000296
Debug: 496 38578 gdb_server.c:2047 gdb_input_inner(): received packet:
'mfffffffe,4'
Debug: 497 38578 gdb_server.c:1199 gdb_read_memory_packet(): addr: 0xfffffffe,
len: 0x00000004
Debug: 498 38578 target.c:1769 target_read_buffer(): reading buffer of 4 byte
at 0xfffffffe
Error: 499 38578 target.c:1783 target_read_buffer(): address + size
wrapped(0xfffffffe, 0x00000004)
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel