I am working with an i.MX31 based board (Armadillo500) with a JtagKey-2 dongle.
I have setup an OpenOcd connection where I can:
- read/write to the board NOR flash
- read/write the memory
- connect the gdb
- set/clear breakpoints

But when a "push"(STMDB) instruction is raised, OpenOCD can not step over that 
instruction:
it maintain the target status "running".

A breakpoint over that instruction is never reached.

Here the telnet session:
> reset halt
JTAG tap: imx31.etb tap/device found: 0x2b900f0f (mfg: 0x787, part: 0xb900, 
ver: 0x2)
JTAG tap: imx31.cpu tap/device found: 0x07b3601d (mfg: 0x00e, part: 0x7b36, 
ver: 0x0)
TAP imx31.whatchacallit does not have IDCODE
JTAG tap: imx31.smda tap/device found: 0x1190101d (mfg: 0x00e, part: 0x1901, 
ver: 0x1)
found ARM1136
imx31.cpu: ran after reset and before halt ...
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x800001d3 pc: 0xa00000e0
DSCR 00006003 e
> bp 0xa0004360 4 hw
breakpoint set at 0xa0004360
> resume
target state: halted
target halted in ARM state due to breakpoint, current mode: Supervisor
cpsr: 0x200001d3 pc: 0xa0004360
DSCR 00006007 e
> arm disassemble 0xa0004360 10    
0xa0004360      0xe92d4030      STMDB r13!, {r4, r5, r14}
0xa0004364      0xe24dd044      SUB r13, r13, #0x44
0xa0004368      0xe59f40e0      LDR r4, [r15, #0xe0]
0xa000436c      0xe59f50e0      LDR r5, [r15, #0xe0]
0xa0004370      0xea000008      B 0xa0004398
0xa0004374      0xe1a0e00f      MOV r14, r15
0xa0004378      0xe594f000      LDR r15, [r4]
0xa000437c      0xe2844004      ADD r4, r4, #0x4
0xa0004380      0xe3500000      CMP r0, #0x0
0xa0004384      0x0a000003      BEQ 0xa0004398
>step
target state: halted
target halted in ARM state due to single-step, current mode: Supervisor
cpsr: 0x200001d3 pc: 0xa0004360
DSCR 00006007 e
> step
Timeout (1000ms) waiting for instructions to complete
Command handler execution failed
in procedure 'step' called at file "command.c", line 650
called at file "command.c", line 361
> poll
background polling: on
TAP: imx31.cpu (enabled)
target state: running
> halt
Timeout (1000ms) waiting for instructions to complete
Command handler execution failed
in procedure 'halt' called at file "command.c", line 650
called at file "command.c", line 361


And here the corresponding log level 3

Debug: 1821 1574924 command.c:133 script_debug(): command - ocd_command 
ocd_command type ocd_step
Debug: 1822 1574924 command.c:133 script_debug(): command - step ocd_step
Debug: 1824 1574925 target.c:2180 handle_step_command(): -
Debug: 1825 1574925 arm11.c:586 arm11_step(): target->state: halted
Debug: 1826 1574925 arm11.c:598 arm11_step(): STEP PC a0004360
Debug: 1827 1574935 arm11.c:847 arm11_read_memory_inner(): ADDR a0004360  SIZE 
00000004  COUNT 00000001
Debug: 1828 1574945 target.c:1527 target_read_u32(): address: 0xa0004360, 
value: 0xe92d4030
Debug: 1829 1574972 arm_dpm.c:223 dpm_write_reg(): WRITE: pc, a0004360
Debug: 1830 1574975 arm_dpm.c:223 dpm_write_reg(): WRITE: r0, a001b47c
Debug: 1831 1574980 core.c:566 jtag_add_statemove(): cur_state=RUN/IDLE 
goal_state=DRPAUSE
Debug: 1832 1574981 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 1833 1574983 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 1834 1574985 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 1835 1574987 arm11.c:709 arm11_step(): DSCR 00006006 e
..... Every Debug: n
Debug: 2826 1576968 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 2827 1576970 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 2828 1576973 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 2829 1576975 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 2830 1576977 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 2831 1576979 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 2832 1576981 arm11.c:709 arm11_step(): DSCR 00006006 e
Debug: 2833 1576983 arm11.c:709 arm11_step(): DSCR 00006006 e
Warn : 2834 1576983 arm11.c:723 arm11_step(): Timeout (1000ms) waiting for 
instructions to complete
Debug: 2835 1576983 command.c:620 run_command(): Command failed with error code 
-4
User : 2836 1576983 command.c:824 openocd_jim_vfprintf(): Command handler 
execution failed
User : 2839 1576983 command.c:824 openocd_jim_vfprintf(): 
User : 2841 1576983 command.c:824 openocd_jim_vfprintf(): 
Debug: 2842 1576983 log.c:496 keep_alive(): keep_alive() was not invoked in the 
1000ms timelimit (2122). This may cause trouble with GDB connections.



Thanks for all the help you can give me!

Best regards,


-- 
Alberto!

        Be Persistent!
                - Greg Kroah-Hartman (FOSDEM 2010)

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to